123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608 |
- // 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 any {
- header "any"
- export *
- }
- module array {
- header "array"
- export initializer_list
- export *
- }
- module atomic {
- header "atomic"
- 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 {
- header "compare"
- export *
- }
- module complex {
- header "complex"
- export *
- }
- module condition_variable {
- header "condition_variable"
- export *
- }
- module deque {
- header "deque"
- export initializer_list
- export *
- }
- module exception {
- header "exception"
- export *
- }
- module filesystem {
- header "filesystem"
- export *
- }
- module forward_list {
- header "forward_list"
- export initializer_list
- export *
- }
- module fstream {
- header "fstream"
- export *
- }
- module functional {
- header "functional"
- export *
- }
- 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 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 mutex {
- header "mutex"
- export *
- }
- module new {
- header "new"
- 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 ratio {
- header "ratio"
- export *
- }
- module regex {
- header "regex"
- export initializer_list
- export *
- }
- module scoped_allocator {
- header "scoped_allocator"
- 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 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 __bit_reference { header "__bit_reference" export * }
- module __debug { header "__debug" export * }
- module __errc { header "__errc" export * }
- module __functional_base { header "__functional_base" export * }
- module __hash_table { header "__hash_table" export * }
- module __locale { header "__locale" export * }
- module __mutex_base { header "__mutex_base" export * }
- module __split_buffer { header "__split_buffer" export * }
- module __sso_allocator { header "__sso_allocator" export * }
- module __std_stream { header "__std_stream" export * }
- module __string { header "__string" export * }
- module __tree { header "__tree" export * }
- module __tuple { header "__tuple" export * }
- module __undef_macros { header "__undef_macros" export * }
- module __node_handle { header "__node_handle" 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
- }
|