mirror of https://github.com/flysand7/ciabatta.git
Use target platform from the build script, don't autodetect
This commit is contained in:
parent
0e14742117
commit
06e1057ad2
1
build.py
1
build.py
|
@ -70,6 +70,7 @@ else: # 'debug'
|
|||
cc_flags.append('-g')
|
||||
cc_flags.append('-O0')
|
||||
cc_defines.append('DEBUG')
|
||||
cc_defines.append(f'_CIA_OS_{target.upper()}')
|
||||
|
||||
# Generate TinyRT headers for the target platform
|
||||
print(f"==> Generating TinyRT header for {target}")
|
||||
|
|
|
@ -6,40 +6,14 @@
|
|||
#define noreturn _Noreturn
|
||||
#define NULL ((void *)0)
|
||||
|
||||
// Platform macros
|
||||
#define _CIA_LINUX 1
|
||||
#define _CIA_WINDOWS 2
|
||||
#define _CIA_ANDROID 3
|
||||
|
||||
// Platform detection
|
||||
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)
|
||||
#define _CIA_OS _CIA_WINDOWS
|
||||
#if !defined(_WIN64)
|
||||
#error "32-bit windows is not supported"
|
||||
#endif
|
||||
#elif __APPLE__
|
||||
#error "Apple OS's not supported and will never be unless you want to write the support for it"
|
||||
#elif __ANDROID__
|
||||
#define _CIA_OS _CIA_ANDROID
|
||||
#elif __linux__
|
||||
#define _CIA_OS _CIA_LINUX
|
||||
#else
|
||||
#error "Unable to detect the OS"
|
||||
#endif
|
||||
|
||||
// Convenience platform checking macros
|
||||
#define _CIA_OS_LINUX() (_CIA_OS == _CIA_LINUX)
|
||||
#define _CIA_OS_WINDOWS() (_CIA_OS == _CIA_WINDOWS)
|
||||
#define _CIA_OS_ANDROID() (_CIA_OS == _CIA_ANDROID)
|
||||
|
||||
// Assert commonly-accepted platform-invariant sizes
|
||||
static_assert(sizeof(char) == 1, "Char isn't 1 bytes long");
|
||||
static_assert(sizeof(short) == 2, "Short isn't 2 bytes long");
|
||||
static_assert(sizeof(int) == 4, "Int isn't 4 bytes long");
|
||||
static_assert(sizeof(long long int) == 8, "Long long isn't 8 bytes long");
|
||||
#if _CIA_OS_LINUX()
|
||||
#if defined(_CIA_OS_LINUX)
|
||||
static_assert(sizeof(long) == 8, "Long on linux isn't 8 bytes");
|
||||
#elif _CIA_OS_WINDOWS()
|
||||
#elif defined(_CIA_OS_WINDOWS)
|
||||
static_assert(sizeof(long) == 4, "Long on windows isn't 4 bytes");
|
||||
#endif
|
||||
|
||||
|
@ -50,10 +24,10 @@ typedef signed short int16_t;
|
|||
typedef unsigned short uint16_t;
|
||||
typedef signed int int32_t;
|
||||
typedef unsigned int uint32_t;
|
||||
#if _CIA_OS_LINUX()
|
||||
#if defined(_CIA_OS_LINUX)
|
||||
typedef signed long int64_t;
|
||||
typedef unsigned long uint64_t;
|
||||
#elif _CIA_OS_WINDOWS()
|
||||
#elif defined(_CIA_OS_WINDOWS)
|
||||
typedef signed long long int64_t;
|
||||
typedef unsigned long long uint64_t;
|
||||
#else
|
||||
|
|
Loading…
Reference in New Issue