mirror of
https://github.com/bkaradzic/bx.git
synced 2026-02-17 20:52:37 +01:00
Detect CRT library and allow override for no-CRT.
This commit is contained in:
@@ -29,13 +29,17 @@
|
||||
#define BX_CPU_X86 0
|
||||
|
||||
// C Runtime
|
||||
#define BX_CRT_BIONIC 0
|
||||
#define BX_CRT_GLIBC 0
|
||||
#define BX_CRT_LIBCXX 0
|
||||
#define BX_CRT_MINGW 0
|
||||
#define BX_CRT_MSVC 0
|
||||
#define BX_CRT_MUSL 0
|
||||
#define BX_CRT_NEWLIB 0
|
||||
#define BX_CRT_NONE 0
|
||||
|
||||
#ifndef BX_CRT_NONE
|
||||
# define BX_CRT_NONE 0
|
||||
#endif // BX_CRT_NONE
|
||||
|
||||
// Platform
|
||||
#define BX_PLATFORM_ANDROID 0
|
||||
@@ -64,34 +68,12 @@
|
||||
# undef BX_COMPILER_CLANG_ANALYZER
|
||||
# define BX_COMPILER_CLANG_ANALYZER 1
|
||||
# endif // defined(__clang_analyzer__)
|
||||
# if defined(_MSC_VER)
|
||||
# undef BX_CRT_MSVC
|
||||
# define BX_CRT_MSVC 1
|
||||
# elif defined(__GLIBC__)
|
||||
# undef BX_CRT_GLIBC
|
||||
# define BX_CRT_GLIBC (__GLIBC__ * 10000 + __GLIBC_MINOR__ * 100)
|
||||
# elif defined(__MINGW32__) || defined(__MINGW64__)
|
||||
# undef BX_CRT_MINGW
|
||||
# define BX_CRT_MINGW 1
|
||||
# elif defined(__apple_build_version__) || defined(__ANDROID__) || defined(__ORBIS__)
|
||||
# undef BX_CRT_LIBCXX
|
||||
# define BX_CRT_LIBCXX 1
|
||||
# endif //
|
||||
#elif defined(_MSC_VER)
|
||||
# undef BX_COMPILER_MSVC
|
||||
# define BX_COMPILER_MSVC _MSC_VER
|
||||
# undef BX_CRT_MSVC
|
||||
# define BX_CRT_MSVC 1
|
||||
#elif defined(__GNUC__)
|
||||
# undef BX_COMPILER_GCC
|
||||
# define BX_COMPILER_GCC (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
|
||||
# if defined(__GLIBC__)
|
||||
# undef BX_CRT_GLIBC
|
||||
# define BX_CRT_GLIBC (__GLIBC__ * 10000 + __GLIBC_MINOR__ * 100)
|
||||
# elif defined(__MINGW32__) || defined(__MINGW64__)
|
||||
# undef BX_CRT_MINGW
|
||||
# define BX_CRT_MINGW 1
|
||||
# endif //
|
||||
#else
|
||||
# error "BX_COMPILER_* is not defined!"
|
||||
#endif //
|
||||
@@ -193,7 +175,7 @@
|
||||
# endif
|
||||
#elif defined(__ANDROID__)
|
||||
// Android compiler defines __linux__
|
||||
# include <android/api-level.h>
|
||||
# include <sys/cdefs.h> // Defines __BIONIC__ and includes android/api-level.h
|
||||
# undef BX_PLATFORM_ANDROID
|
||||
# define BX_PLATFORM_ANDROID __ANDROID_API__
|
||||
#elif defined(__native_client__)
|
||||
@@ -218,11 +200,7 @@
|
||||
# define BX_PLATFORM_IOS 1
|
||||
#elif defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
|
||||
# undef BX_PLATFORM_OSX
|
||||
# if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
|
||||
# define BX_PLATFORM_OSX __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
|
||||
# else
|
||||
# define BX_PLATFORM_OSX 1
|
||||
# endif // defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
|
||||
# define BX_PLATFORM_OSX __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
|
||||
#elif defined(__EMSCRIPTEN__)
|
||||
# undef BX_PLATFORM_EMSCRIPTEN
|
||||
# define BX_PLATFORM_EMSCRIPTEN 1
|
||||
@@ -232,7 +210,11 @@
|
||||
#elif defined(__QNX__)
|
||||
# undef BX_PLATFORM_QNX
|
||||
# define BX_PLATFORM_QNX 1
|
||||
#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
|
||||
#elif defined(__FreeBSD__) \
|
||||
|| defined(__FreeBSD_kernel__) \
|
||||
|| defined(__NetBSD__) \
|
||||
|| defined(__OpenBSD__) \
|
||||
|| defined(__DragonFly__)
|
||||
# undef BX_PLATFORM_BSD
|
||||
# define BX_PLATFORM_BSD 1
|
||||
#elif defined(__GNU__)
|
||||
@@ -240,6 +222,37 @@
|
||||
# define BX_PLATFORM_HURD 1
|
||||
#endif //
|
||||
|
||||
#if !BX_CRT_NONE
|
||||
// https://sourceforge.net/p/predef/wiki/Libraries/
|
||||
# if defined(__BIONIC__)
|
||||
# undef BX_CRT_BIONIC
|
||||
# define BX_CRT_BIONIC 1
|
||||
# elif defined(_MSC_VER)
|
||||
# undef BX_CRT_MSVC
|
||||
# define BX_CRT_MSVC 1
|
||||
# elif defined(__GLIBC__)
|
||||
# undef BX_CRT_GLIBC
|
||||
# define BX_CRT_GLIBC (__GLIBC__ * 10000 + __GLIBC_MINOR__ * 100)
|
||||
# elif defined(__MINGW32__) || defined(__MINGW64__)
|
||||
# undef BX_CRT_MINGW
|
||||
# define BX_CRT_MINGW 1
|
||||
# elif defined(__apple_build_version__) || defined(__ORBIS__)
|
||||
# undef BX_CRT_LIBCXX
|
||||
# define BX_CRT_LIBCXX 1
|
||||
# endif //
|
||||
|
||||
# if !BX_CRT_BIONIC \
|
||||
&& !BX_CRT_GLIBC \
|
||||
&& !BX_CRT_LIBCXX \
|
||||
&& !BX_CRT_MINGW \
|
||||
&& !BX_CRT_MSVC \
|
||||
&& !BX_CRT_MUSL \
|
||||
&& !BX_CRT_NEWLIB
|
||||
# undef BX_CRT_NONE
|
||||
# define BX_CRT_NONE 1
|
||||
# endif // BX_CRT_*
|
||||
#endif // !BX_CRT_NONE
|
||||
|
||||
#define BX_PLATFORM_POSIX (0 \
|
||||
|| BX_PLATFORM_ANDROID \
|
||||
|| BX_PLATFORM_EMSCRIPTEN \
|
||||
@@ -342,14 +355,16 @@
|
||||
# define BX_CPU_NAME "x86"
|
||||
#endif // BX_CPU_
|
||||
|
||||
#if BX_CRT_MSVC
|
||||
# define BX_CRT_NAME "MSVC C Runtime"
|
||||
#if BX_CRT_BIONIC
|
||||
# define BX_CRT_NAME "Bionic libc"
|
||||
#elif BX_CRT_GLIBC
|
||||
# define BX_CRT_NAME "GNU C Library"
|
||||
#elif BX_CRT_NEWLIB
|
||||
# define BX_CRT_NAME "Newlib"
|
||||
#elif BX_CRT_MSVC
|
||||
# define BX_CRT_NAME "MSVC C Runtime"
|
||||
#elif BX_CRT_MINGW
|
||||
# define BX_CRT_NAME "MinGW C Runtime"
|
||||
#elif BX_CRT_NEWLIB
|
||||
# define BX_CRT_NAME "Newlib"
|
||||
#elif BX_CRT_MUSL
|
||||
# define BX_CRT_NAME "musl libc"
|
||||
#else
|
||||
|
||||
Reference in New Issue
Block a user