From: Ian Anderson Date: Sat, 13 May 2023 01:36:57 +0000 (-0700) Subject: [libc++][PSTL] Make the PSTL submodules only have one header X-Git-Tag: upstream/17.0.6~8584 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f0917e92697d1a0157322e36557ccfa07df394ba;p=platform%2Fupstream%2Fllvm.git [libc++][PSTL] Make the PSTL submodules only have one header Module map generation for the private detail headers is easier done if each private header is by itself in a submodule. Move the __algorithm/pstl_backends into their own submodules. Reviewed By: philnik, #libc Differential Revision: https://reviews.llvm.org/D150503 --- diff --git a/libcxx/include/module.modulemap.in b/libcxx/include/module.modulemap.in index e4b5dae..c4d680e 100644 --- a/libcxx/include/module.modulemap.in +++ b/libcxx/include/module.modulemap.in @@ -320,13 +320,25 @@ module std [system] { module partition_point { private header "__algorithm/partition_point.h" } module pop_heap { private header "__algorithm/pop_heap.h" } module prev_permutation { private header "__algorithm/prev_permutation.h" } - module pstl { + module pstl_backends_cpu_backend { private header "__algorithm/pstl_backends/cpu_backend.h" + export * + } + module pstl_backends_cpu_backends_any_of { private header "__algorithm/pstl_backends/cpu_backends/any_of.h" + } + module pstl_backends_cpu_backends_backend { private header "__algorithm/pstl_backends/cpu_backends/backend.h" - private header "__algorithm/pstl_backends/cpu_backends/fill.h" + export * + } + module pstl_backends_cpu_backends_fill { private header "__algorithm/pstl_backends/cpu_backends/fill.h" } + module pstl_backends_cpu_backends_find_if { private header "__algorithm/pstl_backends/cpu_backends/find_if.h" + } + module pstl_backends_cpu_backends_for_each { private header "__algorithm/pstl_backends/cpu_backends/for_each.h" + } + module pstl_backends_cpu_backends_serial { private header "__algorithm/pstl_backends/cpu_backends/serial.h" } module push_heap { private header "__algorithm/push_heap.h" } diff --git a/libcxx/test/libcxx/lint/lint_modulemap.sh.py b/libcxx/test/libcxx/lint/lint_modulemap.sh.py index 8bcd663..85d2c4b 100755 --- a/libcxx/test/libcxx/lint/lint_modulemap.sh.py +++ b/libcxx/test/libcxx/lint/lint_modulemap.sh.py @@ -29,6 +29,9 @@ if __name__ == '__main__': elif re.match(r'^\s*module (\w+)_fwd\s+[{] private header "__fwd/\1[.]h" [}]', line): # It's a private submodule with forward declarations, such as <__fwd/span.h>. pass + elif re.match(r'^\s*module (?:\w+_)*(\w+)\s+[{] private (textual )?header "__(\w+/)*\1[.]h" [}]', line): + # It's a private pstl submodule, such as <__algorithm/pstl_backends/cpu_backend.h> + pass else: okay = False print("LINE DOESN'T MATCH REGEX in libcxx/include/module.modulemap.in!")