diff --git a/src/fmt.cc b/src/fmt.cc new file mode 100644 index 0000000000000..0bf7686c902df --- /dev/null +++ b/src/fmt.cc @@ -0,0 +1,85 @@ +module; +#ifndef FMT_MODULE_NAME +#define FMT_MODULE_NAME fmt +#endif +// put all implementation-provided headers into the global module fragment +// to prevent attachment to this module +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if _MSC_VER +# include // _BitScanReverse[64], _BitScanForward[64], _umul128 +#endif +#ifdef _WIN32 +# include +#endif + +// os.h +#ifdef FMT_WITH_OS + #include + #include + #if __has_include() + #include + #endif + #if __has_include() + #include + #endif +#endif + +export module FMT_MODULE_NAME; + +#define FMT_MODULE_EXPORT export +#define FMT_MODULE_EXPORT_BEGIN export { +#define FMT_MODULE_EXPORT_END } + +#define FMT_USE_NONTYPE_TEMPLATE_PARAMETERS 1 + +// all library-provided declarations and definitions +// must be in the module purview to be exported +#include "fmt/format.h" +#include "fmt/args.h" +#include "fmt/color.h" +#include "fmt/compile.h" +#include "fmt/locale.h" +#include "fmt/ostream.h" +#include "fmt/ranges.h" +#include "fmt/chrono.h" +#include "fmt/printf.h" + +#ifdef FMT_MODULE_WITH_OS +#include "fmt/os.h" +#endif + +module : private; + +#include "format.cc" +#ifdef FMT_MODULE_WITH_OS +#include "os.cc" +#endif