1*5c90c05cSAndroid Build Coastguard Worker module; 2*5c90c05cSAndroid Build Coastguard Worker 3*5c90c05cSAndroid Build Coastguard Worker #ifdef _MSVC_LANG 4*5c90c05cSAndroid Build Coastguard Worker # define FMT_CPLUSPLUS _MSVC_LANG 5*5c90c05cSAndroid Build Coastguard Worker #else 6*5c90c05cSAndroid Build Coastguard Worker # define FMT_CPLUSPLUS __cplusplus 7*5c90c05cSAndroid Build Coastguard Worker #endif 8*5c90c05cSAndroid Build Coastguard Worker 9*5c90c05cSAndroid Build Coastguard Worker // Put all implementation-provided headers into the global module fragment 10*5c90c05cSAndroid Build Coastguard Worker // to prevent attachment to this module. 11*5c90c05cSAndroid Build Coastguard Worker #ifndef FMT_IMPORT_STD 12*5c90c05cSAndroid Build Coastguard Worker # include <algorithm> 13*5c90c05cSAndroid Build Coastguard Worker # include <bitset> 14*5c90c05cSAndroid Build Coastguard Worker # include <chrono> 15*5c90c05cSAndroid Build Coastguard Worker # include <cmath> 16*5c90c05cSAndroid Build Coastguard Worker # include <complex> 17*5c90c05cSAndroid Build Coastguard Worker # include <cstddef> 18*5c90c05cSAndroid Build Coastguard Worker # include <cstdint> 19*5c90c05cSAndroid Build Coastguard Worker # include <cstdio> 20*5c90c05cSAndroid Build Coastguard Worker # include <cstdlib> 21*5c90c05cSAndroid Build Coastguard Worker # include <cstring> 22*5c90c05cSAndroid Build Coastguard Worker # include <ctime> 23*5c90c05cSAndroid Build Coastguard Worker # include <exception> 24*5c90c05cSAndroid Build Coastguard Worker # if FMT_CPLUSPLUS > 202002L 25*5c90c05cSAndroid Build Coastguard Worker # include <expected> 26*5c90c05cSAndroid Build Coastguard Worker # endif 27*5c90c05cSAndroid Build Coastguard Worker # include <filesystem> 28*5c90c05cSAndroid Build Coastguard Worker # include <fstream> 29*5c90c05cSAndroid Build Coastguard Worker # include <functional> 30*5c90c05cSAndroid Build Coastguard Worker # include <iterator> 31*5c90c05cSAndroid Build Coastguard Worker # include <limits> 32*5c90c05cSAndroid Build Coastguard Worker # include <locale> 33*5c90c05cSAndroid Build Coastguard Worker # include <memory> 34*5c90c05cSAndroid Build Coastguard Worker # include <optional> 35*5c90c05cSAndroid Build Coastguard Worker # include <ostream> 36*5c90c05cSAndroid Build Coastguard Worker # include <source_location> 37*5c90c05cSAndroid Build Coastguard Worker # include <stdexcept> 38*5c90c05cSAndroid Build Coastguard Worker # include <string> 39*5c90c05cSAndroid Build Coastguard Worker # include <string_view> 40*5c90c05cSAndroid Build Coastguard Worker # include <system_error> 41*5c90c05cSAndroid Build Coastguard Worker # include <thread> 42*5c90c05cSAndroid Build Coastguard Worker # include <type_traits> 43*5c90c05cSAndroid Build Coastguard Worker # include <typeinfo> 44*5c90c05cSAndroid Build Coastguard Worker # include <utility> 45*5c90c05cSAndroid Build Coastguard Worker # include <variant> 46*5c90c05cSAndroid Build Coastguard Worker # include <vector> 47*5c90c05cSAndroid Build Coastguard Worker #else 48*5c90c05cSAndroid Build Coastguard Worker # include <limits.h> 49*5c90c05cSAndroid Build Coastguard Worker # include <stdint.h> 50*5c90c05cSAndroid Build Coastguard Worker # include <stdio.h> 51*5c90c05cSAndroid Build Coastguard Worker # include <time.h> 52*5c90c05cSAndroid Build Coastguard Worker #endif 53*5c90c05cSAndroid Build Coastguard Worker #include <cerrno> 54*5c90c05cSAndroid Build Coastguard Worker #include <climits> 55*5c90c05cSAndroid Build Coastguard Worker #include <version> 56*5c90c05cSAndroid Build Coastguard Worker 57*5c90c05cSAndroid Build Coastguard Worker #if __has_include(<cxxabi.h>) 58*5c90c05cSAndroid Build Coastguard Worker # include <cxxabi.h> 59*5c90c05cSAndroid Build Coastguard Worker #endif 60*5c90c05cSAndroid Build Coastguard Worker #if defined(_MSC_VER) || defined(__MINGW32__) 61*5c90c05cSAndroid Build Coastguard Worker # include <intrin.h> 62*5c90c05cSAndroid Build Coastguard Worker #endif 63*5c90c05cSAndroid Build Coastguard Worker #if defined __APPLE__ || defined(__FreeBSD__) 64*5c90c05cSAndroid Build Coastguard Worker # include <xlocale.h> 65*5c90c05cSAndroid Build Coastguard Worker #endif 66*5c90c05cSAndroid Build Coastguard Worker #if __has_include(<winapifamily.h>) 67*5c90c05cSAndroid Build Coastguard Worker # include <winapifamily.h> 68*5c90c05cSAndroid Build Coastguard Worker #endif 69*5c90c05cSAndroid Build Coastguard Worker #if (__has_include(<fcntl.h>) || defined(__APPLE__) || \ 70*5c90c05cSAndroid Build Coastguard Worker defined(__linux__)) && \ 71*5c90c05cSAndroid Build Coastguard Worker (!defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP)) 72*5c90c05cSAndroid Build Coastguard Worker # include <fcntl.h> 73*5c90c05cSAndroid Build Coastguard Worker # include <sys/stat.h> 74*5c90c05cSAndroid Build Coastguard Worker # include <sys/types.h> 75*5c90c05cSAndroid Build Coastguard Worker # ifndef _WIN32 76*5c90c05cSAndroid Build Coastguard Worker # include <unistd.h> 77*5c90c05cSAndroid Build Coastguard Worker # else 78*5c90c05cSAndroid Build Coastguard Worker # include <io.h> 79*5c90c05cSAndroid Build Coastguard Worker # endif 80*5c90c05cSAndroid Build Coastguard Worker #endif 81*5c90c05cSAndroid Build Coastguard Worker #ifdef _WIN32 82*5c90c05cSAndroid Build Coastguard Worker # if defined(__GLIBCXX__) 83*5c90c05cSAndroid Build Coastguard Worker # include <ext/stdio_filebuf.h> 84*5c90c05cSAndroid Build Coastguard Worker # include <ext/stdio_sync_filebuf.h> 85*5c90c05cSAndroid Build Coastguard Worker # endif 86*5c90c05cSAndroid Build Coastguard Worker # define WIN32_LEAN_AND_MEAN 87*5c90c05cSAndroid Build Coastguard Worker # include <windows.h> 88*5c90c05cSAndroid Build Coastguard Worker #endif 89*5c90c05cSAndroid Build Coastguard Worker 90*5c90c05cSAndroid Build Coastguard Worker export module fmt; 91*5c90c05cSAndroid Build Coastguard Worker 92*5c90c05cSAndroid Build Coastguard Worker #ifdef FMT_IMPORT_STD 93*5c90c05cSAndroid Build Coastguard Worker import std; 94*5c90c05cSAndroid Build Coastguard Worker #endif 95*5c90c05cSAndroid Build Coastguard Worker 96*5c90c05cSAndroid Build Coastguard Worker #define FMT_EXPORT export 97*5c90c05cSAndroid Build Coastguard Worker #define FMT_BEGIN_EXPORT export { 98*5c90c05cSAndroid Build Coastguard Worker #define FMT_END_EXPORT } 99*5c90c05cSAndroid Build Coastguard Worker 100*5c90c05cSAndroid Build Coastguard Worker // If you define FMT_ATTACH_TO_GLOBAL_MODULE 101*5c90c05cSAndroid Build Coastguard Worker // - all declarations are detached from module 'fmt' 102*5c90c05cSAndroid Build Coastguard Worker // - the module behaves like a traditional static library, too 103*5c90c05cSAndroid Build Coastguard Worker // - all library symbols are mangled traditionally 104*5c90c05cSAndroid Build Coastguard Worker // - you can mix TUs with either importing or #including the {fmt} API 105*5c90c05cSAndroid Build Coastguard Worker #ifdef FMT_ATTACH_TO_GLOBAL_MODULE 106*5c90c05cSAndroid Build Coastguard Worker extern "C++" { 107*5c90c05cSAndroid Build Coastguard Worker #endif 108*5c90c05cSAndroid Build Coastguard Worker 109*5c90c05cSAndroid Build Coastguard Worker #ifndef FMT_OS 110*5c90c05cSAndroid Build Coastguard Worker # define FMT_OS 1 111*5c90c05cSAndroid Build Coastguard Worker #endif 112*5c90c05cSAndroid Build Coastguard Worker 113*5c90c05cSAndroid Build Coastguard Worker // All library-provided declarations and definitions must be in the module 114*5c90c05cSAndroid Build Coastguard Worker // purview to be exported. 115*5c90c05cSAndroid Build Coastguard Worker #include "fmt/args.h" 116*5c90c05cSAndroid Build Coastguard Worker #include "fmt/chrono.h" 117*5c90c05cSAndroid Build Coastguard Worker #include "fmt/color.h" 118*5c90c05cSAndroid Build Coastguard Worker #include "fmt/compile.h" 119*5c90c05cSAndroid Build Coastguard Worker #include "fmt/format.h" 120*5c90c05cSAndroid Build Coastguard Worker #if FMT_OS 121*5c90c05cSAndroid Build Coastguard Worker # include "fmt/os.h" 122*5c90c05cSAndroid Build Coastguard Worker #endif 123*5c90c05cSAndroid Build Coastguard Worker #include "fmt/ostream.h" 124*5c90c05cSAndroid Build Coastguard Worker #include "fmt/printf.h" 125*5c90c05cSAndroid Build Coastguard Worker #include "fmt/ranges.h" 126*5c90c05cSAndroid Build Coastguard Worker #include "fmt/std.h" 127*5c90c05cSAndroid Build Coastguard Worker #include "fmt/xchar.h" 128*5c90c05cSAndroid Build Coastguard Worker 129*5c90c05cSAndroid Build Coastguard Worker #ifdef FMT_ATTACH_TO_GLOBAL_MODULE 130*5c90c05cSAndroid Build Coastguard Worker } 131*5c90c05cSAndroid Build Coastguard Worker #endif 132*5c90c05cSAndroid Build Coastguard Worker 133*5c90c05cSAndroid Build Coastguard Worker // gcc doesn't yet implement private module fragments 134*5c90c05cSAndroid Build Coastguard Worker #if !FMT_GCC_VERSION 135*5c90c05cSAndroid Build Coastguard Worker module :private; 136*5c90c05cSAndroid Build Coastguard Worker #endif 137*5c90c05cSAndroid Build Coastguard Worker 138*5c90c05cSAndroid Build Coastguard Worker #ifdef FMT_ATTACH_TO_GLOBAL_MODULE 139*5c90c05cSAndroid Build Coastguard Worker extern "C++" { 140*5c90c05cSAndroid Build Coastguard Worker #endif 141*5c90c05cSAndroid Build Coastguard Worker 142*5c90c05cSAndroid Build Coastguard Worker #if FMT_HAS_INCLUDE("format.cc") 143*5c90c05cSAndroid Build Coastguard Worker # include "format.cc" 144*5c90c05cSAndroid Build Coastguard Worker #endif 145*5c90c05cSAndroid Build Coastguard Worker #if FMT_OS && FMT_HAS_INCLUDE("os.cc") 146*5c90c05cSAndroid Build Coastguard Worker # include "os.cc" 147*5c90c05cSAndroid Build Coastguard Worker #endif 148*5c90c05cSAndroid Build Coastguard Worker 149*5c90c05cSAndroid Build Coastguard Worker #ifdef FMT_ATTACH_TO_GLOBAL_MODULE 150*5c90c05cSAndroid Build Coastguard Worker } 151*5c90c05cSAndroid Build Coastguard Worker #endif 152