ios-unity/Libraries/external/baselib/Include/Internal/VerifyPlatformEnvironment.h
2023-02-10 15:13:26 +08:00

129 lines
3.0 KiB
C

#pragma once
// This header verifies that all required platform defines have been provided by the
// BaselibPlatformEnvironment and defines all non-defined optional macros to 0. Please make
// sure to verify the proper definition of newly added platform defines here.
#ifndef EXPORTED_SYMBOL
#error "BaselibPlatformSpecificEnvironment is expected to define EXPORTED_SYMBOL."
#endif
#ifndef IMPORTED_SYMBOL
#error "BaselibPlatformSpecificEnvironment is expected to define IMPORTED_SYMBOL."
#endif
#ifndef PLATFORM_FUTEX_NATIVE_SUPPORT
#error "BaselibPlatformSpecificEnvironment is expected to define PLATFORM_FUTEX_NATIVE_SUPPORT to 0 or 1."
#endif
// define all other platforms to 0
#ifndef BASELIB_PLATFORM_WINDOWS
#define BASELIB_PLATFORM_WINDOWS 0
#endif
#ifndef BASELIB_PLATFORM_MACOS
#define BASELIB_PLATFORM_MACOS 0
#endif
#ifndef BASELIB_PLATFORM_LINUX
#define BASELIB_PLATFORM_LINUX 0
#endif
#ifndef BASELIB_PLATFORM_EMBEDDED_LINUX
#define BASELIB_PLATFORM_EMBEDDED_LINUX 0
#endif
#ifndef BASELIB_PLATFORM_WINRT
#define BASELIB_PLATFORM_WINRT 0
#endif
#ifndef BASELIB_PLATFORM_FAMILY_WINDOWSGAMES
#define BASELIB_PLATFORM_FAMILY_WINDOWSGAMES 0
#endif
#ifndef BASELIB_PLATFORM_EMSCRIPTEN
#define BASELIB_PLATFORM_EMSCRIPTEN 0
#endif
#ifndef BASELIB_PLATFORM_WASI
#define BASELIB_PLATFORM_WASI 0
#endif
#ifndef BASELIB_PLATFORM_ANDROID
#define BASELIB_PLATFORM_ANDROID 0
#endif
#ifndef BASELIB_PLATFORM_PS4
#define BASELIB_PLATFORM_PS4 0
#endif
#ifndef BASELIB_PLATFORM_PS5
#define BASELIB_PLATFORM_PS5 0
#endif
#ifndef BASELIB_PLATFORM_IOS
#define BASELIB_PLATFORM_IOS 0
#endif
#ifndef BASELIB_PLATFORM_TVOS
#define BASELIB_PLATFORM_TVOS 0
#endif
#ifndef BASELIB_PLATFORM_XBOXONE
#define BASELIB_PLATFORM_XBOXONE 0
#endif
#ifndef BASELIB_PLATFORM_SWITCH
#define BASELIB_PLATFORM_SWITCH 0
#endif
#ifndef BASELIB_PLATFORM_LUMIN
#define BASELIB_PLATFORM_LUMIN 0
#endif
#ifndef BASELIB_PLATFORM_STADIA
#define BASELIB_PLATFORM_STADIA 0
#endif
#ifndef BASELIB_PLATFORM_NETBSD
#define BASELIB_PLATFORM_NETBSD 0
#endif
// Define all other compilers with 0
#ifndef COMPILER_MSVC
#define COMPILER_MSVC 0
#endif
#ifndef COMPILER_GCC
#define COMPILER_GCC 0
#endif
#ifndef COMPILER_CLANG
#define COMPILER_CLANG 0
#endif
// Make sure no platform is defined twice.
// Note that having no known platform defined is accepted.
#if BASELIB_PLATFORM_WINDOWS + \
BASELIB_PLATFORM_MACOS + \
BASELIB_PLATFORM_LINUX + \
BASELIB_PLATFORM_EMBEDDED_LINUX + \
BASELIB_PLATFORM_WINRT + \
BASELIB_PLATFORM_FAMILY_WINDOWSGAMES + \
BASELIB_PLATFORM_EMSCRIPTEN + \
BASELIB_PLATFORM_WASI + \
BASELIB_PLATFORM_ANDROID + \
BASELIB_PLATFORM_PS4 + \
BASELIB_PLATFORM_PS5 + \
BASELIB_PLATFORM_IOS + \
BASELIB_PLATFORM_TVOS + \
BASELIB_PLATFORM_XBOXONE + \
BASELIB_PLATFORM_SWITCH + \
BASELIB_PLATFORM_LUMIN + \
BASELIB_PLATFORM_STADIA + \
BASELIB_PLATFORM_NETBSD \
> 1
#error "Only a single BASELIB_PLATFORM_X is allowed to be set to 1"
#endif