llvm-project/libcxx/include/module.modulemap

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

790 lines
21 KiB
Plaintext
Raw Normal View History

// define the module for __config outside of the top level 'std' module
// since __config may be included from C headers which may create an
// include cycle.
module std_config [system] [extern_c] {
header "__config"
}
module std [system] {
export std_config
// FIXME: The standard does not require that each of these submodules
// re-exports its imported modules. We should provide an alternative form of
// export that issues a warning if a name from the submodule is used, and
// use that to provide a 'strict mode' for libc++.
// Deprecated C-compatibility headers. These can all be included from within
// an 'extern "C"' context.
module depr [extern_c] {
// <assert.h> provided by C library.
module ctype_h {
header "ctype.h"
export *
}
module errno_h {
header "errno.h"
export *
}
module fenv_h {
header "fenv.h"
export *
}
// <float.h> provided by compiler or C library.
module inttypes_h {
header "inttypes.h"
export stdint_h
export *
}
// <iso646.h> provided by compiler.
// <limits.h> provided by compiler or C library.
module locale_h {
header "locale.h"
export *
}
module math_h {
header "math.h"
export *
}
module setjmp_h {
header "setjmp.h"
export *
}
// FIXME: <stdalign.h> is missing.
// <signal.h> provided by C library.
// <stdarg.h> provided by compiler.
// <stdbool.h> provided by compiler.
module stddef_h {
// <stddef.h>'s __need_* macros require textual inclusion.
textual header "stddef.h"
}
module stdint_h {
header "stdint.h"
export *
// FIXME: This module only exists on OS X and for some reason the
// wildcard above doesn't export it.
export Darwin.C.stdint
}
module stdio_h {
// <stdio.h>'s __need_* macros require textual inclusion.
textual header "stdio.h"
export *
export Darwin.C.stdio
}
module stdlib_h {
// <stdlib.h>'s __need_* macros require textual inclusion.
textual header "stdlib.h"
export *
}
module string_h {
header "string.h"
export *
}
// FIXME: <uchar.h> is missing.
// <time.h> provided by C library.
module wchar_h {
// <wchar.h>'s __need_* macros require textual inclusion.
textual header "wchar.h"
export *
}
module wctype_h {
header "wctype.h"
export *
}
}
// <complex.h> and <tgmath.h> are not C headers in any real sense, do not
// allow their use in extern "C" contexts.
module complex_h {
header "complex.h"
export ccomplex
export *
}
module tgmath_h {
header "tgmath.h"
export ccomplex
export cmath
export *
}
// C compatibility headers.
module compat {
module cassert {
// <cassert>'s use of NDEBUG requires textual inclusion.
textual header "cassert"
}
module ccomplex {
header "ccomplex"
export complex
export *
}
module cctype {
header "cctype"
export *
}
module cerrno {
header "cerrno"
export *
}
module cfenv {
header "cfenv"
export *
}
module cfloat {
header "cfloat"
export *
}
module cinttypes {
header "cinttypes"
export cstdint
export *
}
module ciso646 {
header "ciso646"
export *
}
module climits {
header "climits"
export *
}
module clocale {
header "clocale"
export *
}
module cmath {
header "cmath"
export *
}
module csetjmp {
header "csetjmp"
export *
}
module csignal {
header "csignal"
export *
}
// FIXME: <cstdalign> is missing.
module cstdarg {
header "cstdarg"
export *
}
module cstdbool {
header "cstdbool"
export *
}
module cstddef {
header "cstddef"
export *
}
module cstdint {
header "cstdint"
export depr.stdint_h
export *
}
module cstdio {
header "cstdio"
export *
}
module cstdlib {
header "cstdlib"
export *
}
module cstring {
header "cstring"
export *
}
module ctgmath {
header "ctgmath"
export ccomplex
export cmath
export *
}
module ctime {
header "ctime"
export *
}
// FIXME: <cuchar> is missing.
module cwchar {
header "cwchar"
export depr.stdio_h
export *
}
module cwctype {
header "cwctype"
export *
}
}
module algorithm {
header "algorithm"
export initializer_list
export *
module __algorithm {
module adjacent_find { header "__algorithm/adjacent_find.h" }
module all_of { header "__algorithm/all_of.h" }
module any_of { header "__algorithm/any_of.h" }
module binary_search { header "__algorithm/binary_search.h" }
module clamp { header "__algorithm/clamp.h" }
module comp { header "__algorithm/comp.h" }
module comp_ref_type { header "__algorithm/comp_ref_type.h" }
module copy { header "__algorithm/copy.h" }
module count { header "__algorithm/count.h" }
module count_if { header "__algorithm/count_if.h" }
module equal { header "__algorithm/equal.h" }
module equal_range { header "__algorithm/equal_range.h" }
module fill { header "__algorithm/fill.h" }
module find { header "__algorithm/find.h" }
module find_end { header "__algorithm/find_end.h" }
module find_first_of { header "__algorithm/find_first_of.h" }
module find_if { header "__algorithm/find_if.h" }
module find_if_not { header "__algorithm/find_if_not.h" }
module for_each { header "__algorithm/for_each.h" }
module for_each_n { header "__algorithm/for_each_n.h" }
module generate { header "__algorithm/generate.h" }
module half_positive { header "__algorithm/half_positive.h" }
module includes { header "__algorithm/includes.h" }
module inplace_merge { header "__algorithm/inplace_merge.h" }
module is_heap { header "__algorithm/is_heap.h" }
module is_heap_until { header "__algorithm/is_heap_until.h" }
module is_partitioned { header "__algorithm/is_partitioned.h" }
module is_permutation { header "__algorithm/is_permutation.h" }
module is_sorted { header "__algorithm/is_sorted.h" }
module lexicographical_compare { header "__algorithm/lexicographical_compare.h" }
module lower_bound { header "__algorithm/lower_bound.h" }
module make_heap { header "__algorithm/make_heap.h" }
module max { header "__algorithm/max.h" }
module max_element { header "__algorithm/max_element.h" }
module merge { header "__algorithm/merge.h" }
module min { header "__algorithm/min.h" }
module min_element { header "__algorithm/min_element.h" }
module minmax { header "__algorithm/minmax.h" }
module minmax_element { header "__algorithm/minmax_element.h" }
module mismatch { header "__algorithm/mismatch.h" }
module move { header "__algorithm/move.h" }
module next_permutation { header "__algorithm/next_permutation.h" }
module none_of { header "__algorithm/none_of.h" }
module nth_element { header "__algorithm/nth_element.h" }
module partial_sort { header "__algorithm/partial_sort.h" }
module partition { header "__algorithm/partition.h" }
module partition_point { header "__algorithm/partition_point.h" }
module pop_heap { header "__algorithm/pop_heap.h" }
module prev_permutation { header "__algorithm/prev_permutation.h" }
module push_heap { header "__algorithm/push_heap.h" }
module remove { header "__algorithm/remove.h" }
module replace { header "__algorithm/replace.h" }
module reverse { header "__algorithm/reverse.h" }
module rotate { header "__algorithm/rotate.h" }
module sample { header "__algorithm/sample.h" }
module search { header "__algorithm/search.h" }
module search_n { header "__algorithm/search_n.h" }
module set_difference { header "__algorithm/set_difference.h" }
module set_intersection { header "__algorithm/set_intersection.h" }
module set_symmetric_difference { header "__algorithm/set_symmetric_difference.h" }
module set_union { header "__algorithm/set_union.h" }
module shift { header "__algorithm/shift.h" }
module shuffle { header "__algorithm/shuffle.h" }
module sift_down { header "__algorithm/sift_down.h" }
module sort { header "__algorithm/sort.h" }
module sort_heap { header "__algorithm/sort_heap.h" }
module stable_partition { header "__algorithm/stable_partition.h" }
module stable_sort { header "__algorithm/stable_sort.h" }
module transform { header "__algorithm/transform.h" }
module uniform_int_distribution { header "__algorithm/uniform_int_distribution.h" }
module unique { header "__algorithm/unique.h" }
module unwrap_iter { header "__algorithm/unwrap_iter.h" }
module upper_bound { header "__algorithm/upper_bound.h" }
}
}
module any {
header "any"
export *
}
module array {
header "array"
export initializer_list
export *
}
module atomic {
header "atomic"
export *
}
module barrier {
requires cplusplus14
header "barrier"
export *
}
module bit {
header "bit"
export *
}
module bitset {
header "bitset"
export string
export iosfwd
export *
}
// No submodule for cassert. It fundamentally needs repeated, textual inclusion.
module charconv {
header "charconv"
export *
}
module chrono {
header "chrono"
export *
}
module codecvt {
header "codecvt"
export *
}
module compare {
requires cplusplus20
header "compare"
export *
}
module complex {
header "complex"
export *
}
module concepts {
requires cplusplus20
header "concepts"
export *
}
module condition_variable {
header "condition_variable"
export *
}
module deque {
header "deque"
export initializer_list
export *
}
module exception {
header "exception"
export *
}
module execution {
header "execution"
export *
}
module filesystem {
header "filesystem"
export *
}
module format {
requires cplusplus20
header "format"
export *
module __format {
module format_error { header "__format/format_error.h" }
module format_parse_context { header "__format/format_parse_context.h" }
}
}
module forward_list {
header "forward_list"
export initializer_list
export *
}
module fstream {
header "fstream"
export *
}
module functional {
header "functional"
export *
module __functional {
module search { header "__functional/search.h" }
}
}
module future {
header "future"
export *
}
module initializer_list {
header "initializer_list"
export *
}
module iomanip {
header "iomanip"
export *
}
module ios {
header "ios"
export iosfwd
export *
}
module iosfwd {
header "iosfwd"
export *
}
module iostream {
header "iostream"
export ios
export streambuf
export istream
export ostream
export *
}
module istream {
header "istream"
// FIXME: should re-export ios, streambuf?
export *
}
module iterator {
header "iterator"
export *
module __iterator {
module advance { header "__iterator/advance.h" }
module concepts { header "__iterator/concepts.h" }
module default_sentinel { header "__iterator/default_sentinel.h" }
module incrementable_traits { header "__iterator/incrementable_traits.h" }
module indirect_concepts { header "__iterator/indirect_concepts.h" }
module iter_move { header "__iterator/iter_move.h" }
module iterator_traits { header "__iterator/iterator_traits.h" }
module next { header "__iterator/next.h" }
module prev { header "__iterator/prev.h" }
module projected { header "__iterator/projected.h" }
module readable_traits { header "__iterator/readable_traits.h" }
}
}
module latch {
requires cplusplus14
header "latch"
export *
}
module limits {
header "limits"
export *
}
module list {
header "list"
export initializer_list
export *
}
module locale {
header "locale"
export *
}
module map {
header "map"
export initializer_list
export *
}
module memory {
header "memory"
export *
module __memory {
module addressof { header "__memory/addressof.h" }
module allocation_guard { header "__memory/allocation_guard.h" }
module allocator_traits { header "__memory/allocator_traits.h" }
module allocator { header "__memory/allocator.h" }
module auto_ptr { header "__memory/auto_ptr.h" }
module compressed_pair { header "__memory/compressed_pair.h" }
module construct_at { header "__memory/construct_at.h" }
module pointer_safety { header "__memory/pointer_safety.h" }
module pointer_traits { header "__memory/pointer_traits.h" }
module raw_storage_iterator { header "__memory/raw_storage_iterator.h" }
module shared_ptr { header "__memory/shared_ptr.h" }
module temporary_buffer { header "__memory/temporary_buffer.h" }
module uninitialized_algorithms { header "__memory/uninitialized_algorithms.h" }
module unique_ptr { header "__memory/unique_ptr.h" }
}
}
module mutex {
header "mutex"
export *
}
module new {
header "new"
export *
}
module numbers {
header "numbers"
export *
}
module numeric {
header "numeric"
export *
}
module optional {
header "optional"
export *
}
module ostream {
header "ostream"
// FIXME: should re-export ios, streambuf?
export *
}
module queue {
header "queue"
export initializer_list
export *
}
module random {
header "random"
export initializer_list
export *
}
module ranges {
requires cplusplus20
header "ranges"
export compare
export initializer_list
export iterator
export *
module __ranges {
module access { header "__ranges/access.h" }
module concepts { header "__ranges/concepts.h" }
module data { header "__ranges/data.h" }
module empty { header "__ranges/empty.h" }
module enabled_borrowed_range { header "__ranges/enabled_borrowed_range.h" }
module size { header "__ranges/size.h" }
module view_interface { header "__ranges/view_interface.h" }
module view { header "__ranges/view.h" }
}
}
module ratio {
header "ratio"
export *
}
module regex {
header "regex"
export initializer_list
export *
}
module scoped_allocator {
header "scoped_allocator"
export *
}
module semaphore {
requires cplusplus14
header "semaphore"
export *
}
module set {
header "set"
export initializer_list
export *
}
module sstream {
header "sstream"
// FIXME: should re-export istream, ostream, ios, streambuf, string?
export *
}
module stack {
header "stack"
export initializer_list
export *
}
module stdexcept {
header "stdexcept"
export *
}
module streambuf {
header "streambuf"
export *
}
module string {
header "string"
export initializer_list
export string_view
export __string
export *
}
module string_view {
header "string_view"
export initializer_list
export __string
export *
}
module strstream {
header "strstream"
export *
}
module system_error {
header "system_error"
export *
}
module thread {
header "thread"
export *
}
module tuple {
header "tuple"
export *
}
module type_traits {
header "type_traits"
export *
}
module typeindex {
header "typeindex"
export *
}
module typeinfo {
header "typeinfo"
export *
}
module unordered_map {
header "unordered_map"
export initializer_list
export *
}
module unordered_set {
header "unordered_set"
export initializer_list
export *
}
module utility {
header "utility"
export initializer_list
export *
module __utility {
module to_underlying {
header "__utility/to_underlying.h"
}
}
}
module valarray {
header "valarray"
export initializer_list
export *
}
module variant {
header "variant"
export *
}
module vector {
header "vector"
export initializer_list
export *
}
module version {
header "version"
export *
}
// FIXME: These should be private.
module __availability { header "__availability" export * }
module __bit_reference { header "__bit_reference" export * }
module __bits { header "__bits" export * }
module __config { header "__config" export * }
module __debug { header "__debug" export * }
module __errc { header "__errc" export * }
module __function_like { header "__function_like.h" export * }
module __functional_base { header "__functional_base" export * }
// TODO: modularise __functional_(base_)?03
module __hash_table { header "__hash_table" export * }
// libcpp_version not modularised since it's just a version number
module __locale { header "__locale" export * }
module __mutex_base { header "__mutex_base" export * }
module __node_handle { header "__node_handle" export * }
module __nullptr { header "__nullptr" export * }
module __split_buffer { header "__split_buffer" export * }
module __std_stream { header "__std_stream" export * }
module __string { header "__string" export * }
module __threading_support { header "__threading_support" export * }
module __tree { header "__tree" export * }
module __tuple { header "__tuple" export * }
module __undef_macros { header "__undef_macros" export * }
module experimental {
requires cplusplus11
module algorithm {
header "experimental/algorithm"
export *
}
module coroutine {
requires coroutines
header "experimental/coroutine"
export *
}
module deque {
header "experimental/deque"
export *
}
module filesystem {
header "experimental/filesystem"
export *
}
module forward_list {
header "experimental/forward_list"
export *
}
module functional {
header "experimental/functional"
export *
}
module iterator {
header "experimental/iterator"
export *
}
module list {
header "experimental/list"
export *
}
module map {
header "experimental/map"
export *
}
module memory_resource {
header "experimental/memory_resource"
export *
}
module propagate_const {
header "experimental/propagate_const"
export *
}
module regex {
header "experimental/regex"
export *
}
module simd {
header "experimental/simd"
export *
}
module set {
header "experimental/set"
export *
}
module span {
header "span"
export *
}
module string {
header "experimental/string"
export *
}
module type_traits {
header "experimental/type_traits"
export *
}
module unordered_map {
header "experimental/unordered_map"
export *
}
module unordered_set {
header "experimental/unordered_set"
export *
}
module utility {
header "experimental/utility"
export *
}
module vector {
header "experimental/vector"
export *
}
// FIXME these should be private
module __memory {
header "experimental/__memory"
export *
}
} // end experimental
}