]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/libc++/include/module.modulemap
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp
[FreeBSD/FreeBSD.git] / contrib / libc++ / include / module.modulemap
1 // define the module for __config outside of the top level 'std' module
2 // since __config may be included from C headers which may create an
3 // include cycle.
4 module std_config [system] [extern_c] {
5     header "__config"
6 }
7
8 module std [system] {
9   export std_config
10   // FIXME: The standard does not require that each of these submodules
11   // re-exports its imported modules. We should provide an alternative form of
12   // export that issues a warning if a name from the submodule is used, and
13   // use that to provide a 'strict mode' for libc++.
14
15   // Deprecated C-compatibility headers. These can all be included from within
16   // an 'extern "C"' context.
17   module depr [extern_c] {
18     // <assert.h> provided by C library.
19     module ctype_h {
20       header "ctype.h"
21       export *
22     }
23     module errno_h {
24       header "errno.h"
25       export *
26     }
27     // <fenv.h> provided by C library.
28     // <float.h> provided by compiler or C library.
29     module inttypes_h {
30       header "inttypes.h"
31       export stdint_h
32       export *
33     }
34     // <iso646.h> provided by compiler.
35     // <limits.h> provided by compiler or C library.
36     module locale_h {
37       header "locale.h"
38       export *
39     }
40     module math_h {
41       header "math.h"
42       export *
43     }
44     module setjmp_h {
45       header "setjmp.h"
46       export *
47     }
48     // FIXME: <stdalign.h> is missing.
49     // <signal.h> provided by C library.
50     // <stdarg.h> provided by compiler.
51     // <stdbool.h> provided by compiler.
52     module stddef_h {
53       // <stddef.h>'s __need_* macros require textual inclusion.
54       textual header "stddef.h"
55     }
56     module stdint_h {
57       header "stdint.h"
58       export *
59       // FIXME: This module only exists on OS X and for some reason the
60       // wildcard above doesn't export it.
61       export Darwin.C.stdint
62     }
63     module stdio_h {
64       // <stdio.h>'s __need_* macros require textual inclusion.
65       textual header "stdio.h"
66       export *
67       export Darwin.C.stdio
68     }
69     module stdlib_h {
70       // <stdlib.h>'s __need_* macros require textual inclusion.
71       textual header "stdlib.h"
72       export *
73     }
74     module string_h {
75       header "string.h"
76       export *
77     }
78     // FIXME: <uchar.h> is missing.
79     // <time.h> provided by C library.
80     module wchar_h {
81       // <wchar.h>'s __need_* macros require textual inclusion.
82       textual header "wchar.h"
83       export *
84     }
85     module wctype_h {
86       header "wctype.h"
87       export *
88     }
89   }
90
91   // <complex.h> and <tgmath.h> are not C headers in any real sense, do not
92   // allow their use in extern "C" contexts.
93   module complex_h {
94     header "complex.h"
95     export ccomplex
96     export *
97   }
98   module tgmath_h {
99     header "tgmath.h"
100     export ccomplex
101     export cmath
102     export *
103   }
104
105   // C compatibility headers.
106   module compat {
107     module cassert {
108       // <cassert>'s use of NDEBUG requires textual inclusion.
109       textual header "cassert"
110     }
111     module ccomplex {
112       header "ccomplex"
113       export complex
114       export *
115     }
116     module cctype {
117       header "cctype"
118       export *
119     }
120     module cerrno {
121       header "cerrno"
122       export *
123     }
124     module cfenv {
125       header "cfenv"
126       export *
127     }
128     module cfloat {
129       header "cfloat"
130       export *
131     }
132     module cinttypes {
133       header "cinttypes"
134       export cstdint
135       export *
136     }
137     module ciso646 {
138       header "ciso646"
139       export *
140     }
141     module climits {
142       header "climits"
143       export *
144     }
145     module clocale {
146       header "clocale"
147       export *
148     }
149     module cmath {
150       header "cmath"
151       export *
152     }
153     module csetjmp {
154       header "csetjmp"
155       export *
156     }
157     module csignal {
158       header "csignal"
159       export *
160     }
161     // FIXME: <cstdalign> is missing.
162     module cstdarg {
163       header "cstdarg"
164       export *
165     }
166     module cstdbool {
167       header "cstdbool"
168       export *
169     }
170     module cstddef {
171       header "cstddef"
172       export *
173     }
174     module cstdint {
175       header "cstdint"
176       export depr.stdint_h
177       export *
178     }
179     module cstdio {
180       header "cstdio"
181       export *
182     }
183     module cstdlib {
184       header "cstdlib"
185       export *
186     }
187     module cstring {
188       header "cstring"
189       export *
190     }
191     module ctgmath {
192       header "ctgmath"
193       export ccomplex
194       export cmath
195       export *
196     }
197     module ctime {
198       header "ctime"
199       export *
200     }
201     // FIXME: <cuchar> is missing.
202     module cwchar {
203       header "cwchar"
204       export depr.stdio_h
205       export *
206     }
207     module cwctype {
208       header "cwctype"
209       export *
210     }
211   }
212
213   module algorithm {
214     header "algorithm"
215     export initializer_list
216     export *
217   }
218   module any {
219     header "any"
220     export *
221   }
222   module array {
223     header "array"
224     export initializer_list
225     export *
226   }
227   module atomic {
228     header "atomic"
229     export *
230   }
231   module bit {
232     header "bit"
233     export *
234   }
235   module bitset {
236     header "bitset"
237     export string
238     export iosfwd
239     export *
240   }
241   // No submodule for cassert. It fundamentally needs repeated, textual inclusion.
242   module charconv {
243     header "charconv"
244     export *
245   }
246   module chrono {
247     header "chrono"
248     export *
249   }
250   module codecvt {
251     header "codecvt"
252     export *
253   }
254   module compare {
255     header "compare"
256     export *
257   }
258   module complex {
259     header "complex"
260     export *
261   }
262   module condition_variable {
263     header "condition_variable"
264     export *
265   }
266   module deque {
267     header "deque"
268     export initializer_list
269     export *
270   }
271   module exception {
272     header "exception"
273     export *
274   }
275   module filesystem {
276     header "filesystem"
277     export *
278   }
279   module forward_list {
280     header "forward_list"
281     export initializer_list
282     export *
283   }
284   module fstream {
285     header "fstream"
286     export *
287   }
288   module functional {
289     header "functional"
290     export *
291   }
292   module future {
293     header "future"
294     export *
295   }
296   module initializer_list {
297     header "initializer_list"
298     export *
299   }
300   module iomanip {
301     header "iomanip"
302     export *
303   }
304   module ios {
305     header "ios"
306     export iosfwd
307     export *
308   }
309   module iosfwd {
310     header "iosfwd"
311     export *
312   }
313   module iostream {
314     header "iostream"
315     export ios
316     export streambuf
317     export istream
318     export ostream
319     export *
320   }
321   module istream {
322     header "istream"
323     // FIXME: should re-export ios, streambuf?
324     export *
325   }
326   module iterator {
327     header "iterator"
328     export *
329   }
330   module limits {
331     header "limits"
332     export *
333   }
334   module list {
335     header "list"
336     export initializer_list
337     export *
338   }
339   module locale {
340     header "locale"
341     export *
342   }
343   module map {
344     header "map"
345     export initializer_list
346     export *
347   }
348   module memory {
349     header "memory"
350     export *
351   }
352   module mutex {
353     header "mutex"
354     export *
355   }
356   module new {
357     header "new"
358     export *
359   }
360   module numeric {
361     header "numeric"
362     export *
363   }
364   module optional {
365     header "optional"
366     export *
367   }
368   module ostream {
369     header "ostream"
370     // FIXME: should re-export ios, streambuf?
371     export *
372   }
373   module queue {
374     header "queue"
375     export initializer_list
376     export *
377   }
378   module random {
379     header "random"
380     export initializer_list
381     export *
382   }
383   module ratio {
384     header "ratio"
385     export *
386   }
387   module regex {
388     header "regex"
389     export initializer_list
390     export *
391   }
392   module scoped_allocator {
393     header "scoped_allocator"
394     export *
395   }
396   module set {
397     header "set"
398     export initializer_list
399     export *
400   }
401   module sstream {
402     header "sstream"
403     // FIXME: should re-export istream, ostream, ios, streambuf, string?
404     export *
405   }
406   module stack {
407     header "stack"
408     export initializer_list
409     export *
410   }
411   module stdexcept {
412     header "stdexcept"
413     export *
414   }
415   module streambuf {
416     header "streambuf"
417     export *
418   }
419   module string {
420     header "string"
421     export initializer_list
422     export string_view
423     export __string
424     export *
425   }
426   module string_view {
427     header "string_view"
428     export initializer_list
429     export __string
430     export *
431   }
432   module strstream {
433     header "strstream"
434     export *
435   }
436   module system_error {
437     header "system_error"
438     export *
439   }
440   module thread {
441     header "thread"
442     export *
443   }
444   module tuple {
445     header "tuple"
446     export *
447   }
448   module type_traits {
449     header "type_traits"
450     export *
451   }
452   module typeindex {
453     header "typeindex"
454     export *
455   }
456   module typeinfo {
457     header "typeinfo"
458     export *
459   }
460   module unordered_map {
461     header "unordered_map"
462     export initializer_list
463     export *
464   }
465   module unordered_set {
466     header "unordered_set"
467     export initializer_list
468     export *
469   }
470   module utility {
471     header "utility"
472     export initializer_list
473     export *
474   }
475   module valarray {
476     header "valarray"
477     export initializer_list
478     export *
479   }
480   module variant {
481     header "variant"
482     export *
483   }
484   module vector {
485     header "vector"
486     export initializer_list
487     export *
488   }
489   module version {
490     header "version"
491     export *
492   }
493
494   // FIXME: These should be private.
495   module __bit_reference { header "__bit_reference" export * }
496   module __debug { header "__debug" export * }
497   module __errc { header "__errc" export * }
498   module __functional_base { header "__functional_base" export * }
499   module __hash_table { header "__hash_table" export * }
500   module __locale { header "__locale" export * }
501   module __mutex_base { header "__mutex_base" export * }
502   module __split_buffer { header "__split_buffer" export * }
503   module __sso_allocator { header "__sso_allocator" export * }
504   module __std_stream { header "__std_stream" export * }
505   module __string { header "__string" export * }
506   module __tree { header "__tree" export * }
507   module __tuple { header "__tuple" export * }
508   module __undef_macros { header "__undef_macros" export * }
509   module __node_handle { header "__node_handle" export * }
510
511   module experimental {
512     requires cplusplus11
513
514     module algorithm {
515       header "experimental/algorithm"
516       export *
517     }
518      module coroutine {
519       requires coroutines
520       header "experimental/coroutine"
521       export *
522     }
523     module deque {
524       header "experimental/deque"
525       export *
526     }
527     module filesystem {
528       header "experimental/filesystem"
529       export *
530     }
531     module forward_list {
532       header "experimental/forward_list"
533       export *
534     }
535     module functional {
536       header "experimental/functional"
537       export *
538     }
539     module iterator {
540       header "experimental/iterator"
541       export *
542     }
543     module list {
544       header "experimental/list"
545       export *
546     }
547     module map {
548       header "experimental/map"
549       export *
550     }
551     module memory_resource {
552       header "experimental/memory_resource"
553       export *
554     }
555     module propagate_const {
556       header "experimental/propagate_const"
557       export *
558     }
559     module regex {
560       header "experimental/regex"
561       export *
562     }
563     module simd {
564       header "experimental/simd"
565       export *
566     }
567     module set {
568       header "experimental/set"
569       export *
570     }
571     module span {
572       header "span"
573       export *
574     }
575     module string {
576       header "experimental/string"
577       export *
578     }
579     module type_traits {
580       header "experimental/type_traits"
581       export *
582     }
583     module unordered_map {
584       header "experimental/unordered_map"
585       export *
586     }
587     module unordered_set {
588       header "experimental/unordered_set"
589       export *
590     }
591     module utility {
592       header "experimental/utility"
593       export *
594     }
595     module vector {
596       header "experimental/vector"
597       export *
598     }
599     // FIXME these should be private
600     module __memory {
601       header "experimental/__memory"
602       export *
603     }
604   } // end experimental
605 }