Mercurial > minori
diff dep/fmt/src/fmt.cc @ 329:4aeffed717ef
dep/fmt: add dependency
author | Paper <paper@paper.us.eu.org> |
---|---|
date | Mon, 17 Jun 2024 04:54:44 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dep/fmt/src/fmt.cc Mon Jun 17 04:54:44 2024 -0400 @@ -0,0 +1,108 @@ +module; + +// Put all implementation-provided headers into the global module fragment +// to prevent attachment to this module. +#include <algorithm> +#include <cerrno> +#include <chrono> +#include <climits> +#include <cmath> +#include <cstddef> +#include <cstdint> +#include <cstdio> +#include <cstdlib> +#include <cstring> +#include <ctime> +#include <exception> +#include <filesystem> +#include <fstream> +#include <functional> +#include <iterator> +#include <limits> +#include <locale> +#include <memory> +#include <optional> +#include <ostream> +#include <stdexcept> +#include <string> +#include <string_view> +#include <system_error> +#include <thread> +#include <type_traits> +#include <typeinfo> +#include <utility> +#include <variant> +#include <vector> +#include <version> + +#if __has_include(<cxxabi.h>) +# include <cxxabi.h> +#endif +#if defined(_MSC_VER) || defined(__MINGW32__) +# include <intrin.h> +#endif +#if defined __APPLE__ || defined(__FreeBSD__) +# include <xlocale.h> +#endif +#if __has_include(<winapifamily.h>) +# include <winapifamily.h> +#endif +#if (__has_include(<fcntl.h>) || defined(__APPLE__) || \ + defined(__linux__)) && \ + (!defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP)) +# include <fcntl.h> +# include <sys/stat.h> +# include <sys/types.h> +# ifndef _WIN32 +# include <unistd.h> +# else +# include <io.h> +# endif +#endif +#ifdef _WIN32 +# if defined(__GLIBCXX__) +# include <ext/stdio_filebuf.h> +# include <ext/stdio_sync_filebuf.h> +# endif +# define WIN32_LEAN_AND_MEAN +# include <windows.h> +#endif + +export module fmt; + +#define FMT_EXPORT export +#define FMT_BEGIN_EXPORT export { +#define FMT_END_EXPORT } + +// If you define FMT_ATTACH_TO_GLOBAL_MODULE +// - all declarations are detached from module 'fmt' +// - the module behaves like a traditional static library, too +// - all library symbols are mangled traditionally +// - you can mix TUs with either importing or #including the {fmt} API +#ifdef FMT_ATTACH_TO_GLOBAL_MODULE +extern "C++" { +#endif + +// All library-provided declarations and definitions must be in the module +// purview to be exported. +#include "fmt/args.h" +#include "fmt/chrono.h" +#include "fmt/color.h" +#include "fmt/compile.h" +#include "fmt/format.h" +#include "fmt/os.h" +#include "fmt/printf.h" +#include "fmt/std.h" +#include "fmt/xchar.h" + +#ifdef FMT_ATTACH_TO_GLOBAL_MODULE +} +#endif + +// gcc doesn't yet implement private module fragments +#if !FMT_GCC_VERSION +module :private; +#endif + +#include "format.cc" +#include "os.cc"