3 // Put all implementation-provided headers into the global module fragment
4 // to prevent attachment to this module.
19 # include <filesystem>
21 # include <functional>
28 # include <source_location>
31 # include <string_view>
32 # include <system_error>
34 # include <type_traits>
49 #if __has_include(<cxxabi.h>)
52 #if defined(_MSC_VER) || defined(__MINGW32__)
55 #if defined __APPLE__ || defined(__FreeBSD__)
58 #if __has_include(<winapifamily.h>)
59 # include <winapifamily.h>
61 #if (__has_include(<fcntl.h>) || defined(__APPLE__) || \
62 defined(__linux__)) && \
63 (!defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP))
65 # include <sys/stat.h>
66 # include <sys/types.h>
74 # if defined(__GLIBCXX__)
75 # include <ext/stdio_filebuf.h>
76 # include <ext/stdio_sync_filebuf.h>
78 # define WIN32_LEAN_AND_MEAN
88 #define FMT_EXPORT export
89 #define FMT_BEGIN_EXPORT export {
90 #define FMT_END_EXPORT }
92 // If you define FMT_ATTACH_TO_GLOBAL_MODULE
93 // - all declarations are detached from module 'fmt'
94 // - the module behaves like a traditional static library, too
95 // - all library symbols are mangled traditionally
96 // - you can mix TUs with either importing or #including the {fmt} API
97 #ifdef FMT_ATTACH_TO_GLOBAL_MODULE
105 // All library-provided declarations and definitions must be in the module
106 // purview to be exported.
107 #include "fmt/args.h"
108 #include "fmt/chrono.h"
109 #include "fmt/color.h"
110 #include "fmt/compile.h"
111 #include "fmt/format.h"
115 #include "fmt/ostream.h"
116 #include "fmt/printf.h"
117 #include "fmt/ranges.h"
119 #include "fmt/xchar.h"
121 #ifdef FMT_ATTACH_TO_GLOBAL_MODULE
125 // gcc doesn't yet implement private module fragments
130 #if FMT_HAS_INCLUDE("format.cc")
131 # include "format.cc"
133 #if FMT_OS && FMT_HAS_INCLUDE("os.cc")