[libcxx-commits] [libcxx] [libc++][modules] Rewrite the modulemap to have fewer top-level modules (PR #107638)
Ian Anderson via libcxx-commits
libcxx-commits at lists.llvm.org
Mon Sep 9 12:16:46 PDT 2024
================
@@ -1,2111 +1,1609 @@
-// Main C++ standard library interfaces
-module std_algorithm [system] {
- header "algorithm"
- export *
-}
-module std_any [system] {
- header "any"
- export *
-}
-module std_array [system] {
- header "array"
- export *
-}
-module std_atomic [system] {
- header "atomic"
- export *
-}
-module std_barrier [system] {
- header "barrier"
- export *
-}
-module std_bit [system] {
- header "bit"
- export *
-}
-module std_bitset [system] {
- header "bitset"
- export *
-}
-module std_charconv [system] {
- header "charconv"
- module chars_format { header "__charconv/chars_format.h" }
- module from_chars_integral { header "__charconv/from_chars_integral.h" }
- module from_chars_result { header "__charconv/from_chars_result.h" }
- module tables { header "__charconv/tables.h" }
- module to_chars { header "__charconv/to_chars.h" }
- module to_chars_base_10 { header "__charconv/to_chars_base_10.h" }
- module to_chars_floating_point { header "__charconv/to_chars_floating_point.h" }
- module to_chars_integral { header "__charconv/to_chars_integral.h" }
- module to_chars_result { header "__charconv/to_chars_result.h" }
- module traits { header "__charconv/traits.h" }
- export *
-}
-module std_chrono [system] {
- header "chrono"
- export *
-}
-module std_codecvt [system] {
- header "codecvt"
- export *
-}
-module std_compare [system] {
- header "compare"
- export *
-}
-module std_complex [system] {
- header "complex"
- export *
-}
-module std_concepts [system] {
- header "concepts"
- export *
-}
-module std_condition_variable [system] {
- header "condition_variable"
- module condition_variable { header "__condition_variable/condition_variable.h" }
- export *
-}
-module std_coroutine [system] {
- header "coroutine"
- module coroutine_handle { header "__coroutine/coroutine_handle.h" }
- module coroutine_traits { header "__coroutine/coroutine_traits.h" }
- module noop_coroutine_handle { header "__coroutine/noop_coroutine_handle.h" }
- module trivial_awaitables { header "__coroutine/trivial_awaitables.h" }
- export *
-}
-module std_deque [system] {
- header "deque"
- export *
-}
-module std_exception [system] {
- header "exception"
- export *
-}
-module std_execution [system] {
- header "execution"
+// This module contains headers related to the configuration of the library. These headers
+// are free of any dependency on the rest of libc++.
+module std_config [system] {
+ textual header "__config"
+ textual header "__configuration/abi.h"
+ textual header "__configuration/availability.h"
+ textual header "__configuration/compiler.h"
+ textual header "__configuration/language.h"
+ textual header "__configuration/platform.h"
+ textual header "version"
export *
}
-module std_expected [system] {
- header "expected"
+
+module std_core [system] {
+ module cstddef {
+ header "__cstddef/byte.h"
+ header "__cstddef/max_align_t.h"
+ header "__cstddef/nullptr_t.h"
+ header "__cstddef/ptrdiff_t.h"
+ header "__cstddef/size_t.h"
+ export *
+ }
+
+ module cstdint {
+ header "cstdint"
+ export *
+ }
+
+ module fwd {
+ header "__fwd/byte.h"
+ header "__fwd/functional.h"
+ header "__fwd/pair.h"
+ header "__fwd/tuple.h"
+ export *
+ }
+
+ module limits {
+ header "limits"
+ export *
+ }
+
+ module math {
+ header "__math/abs.h"
----------------
ian-twilightcoder wrote:
You don't even need a header, you can use umbrella directories. At least until you need to add an export to a particular submodule.
https://github.com/llvm/llvm-project/pull/107638
More information about the libcxx-commits
mailing list