From 3daf2e03d34ed2c4ab580361673f40f5827bed69 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sat, 6 Oct 2018 04:14:22 +0000 Subject: Add support for Haiku --- include/Conf.hpp | 45 +++++++++++++++++++++++++++++++++++++++------ include/Platform.hpp | 13 ++++++++++--- include/env.hpp | 6 ++++++ 3 files changed, 55 insertions(+), 9 deletions(-) (limited to 'include') diff --git a/include/Conf.hpp b/include/Conf.hpp index 3cd8cd5..bae0153 100644 --- a/include/Conf.hpp +++ b/include/Conf.hpp @@ -160,6 +160,10 @@ namespace sibs "config.openbsd.static.debug", "config.openbsd.static.release", + "config.haiku", + "config.haiku.static.debug", + "config.haiku.static.release", + "config.win32", "config.win32.static.debug", "config.win32.static.release", @@ -190,10 +194,18 @@ namespace sibs "config.openbsd64", "config.openbsd64.static.debug", - "config.openbsd64.static.release" + "config.openbsd64.static.release", + + "config.haiku32", + "config.haiku32.static.debug", + "config.haiku32.static.release", + + "config.haiku64", + "config.haiku64.static.debug", + "config.haiku64.static.release" }; - const int NUM_CONFIGS = 3 * 13; - const int CONFIGS_GENERIC_OFFSET = 3 * 5; + const int NUM_CONFIGS = 3 * 16; + const int CONFIGS_GENERIC_OFFSET = 3 * 6; #if OS_TYPE == OS_TYPE_WINDOWS #ifdef SIBS_ENV_32BIT @@ -277,9 +289,30 @@ namespace sibs // TODO: Also add "bsd" platform #define SYSTEM_GENERIC_PLATFORM_NAME "openbsd" - #define CONFIG_GENERIC_SYSTEM_PLATFORM 9 - #define CONFIG_GENERIC_STATIC_DEBUG_PLATFORM 10 - #define CONFIG_GENERIC_STATIC_RELEASE_PLATFORM 11 + #define CONFIG_GENERIC_SYSTEM_PLATFORM 12 + #define CONFIG_GENERIC_STATIC_DEBUG_PLATFORM 13 + #define CONFIG_GENERIC_STATIC_RELEASE_PLATFORM 14 + #elif OS_TYPE == OS_TYPE_HAIKU + #ifdef SIBS_ENV_32BIT + const Platform SYSTEM_PLATFORM = PLATFORM_HAIKU32; + #define SYSTEM_PLATFORM_NAME "haiku32" + #define CONFIG_SYSTEM_PLATFORM CONFIGS_GENERIC_OFFSET + 24 + #define CONFIG_STATIC_DEBUG_PLATFORM CONFIGS_GENERIC_OFFSET + 25 + #define CONFIG_STATIC_RELEASE_PLATFORM CONFIGS_GENERIC_OFFSET + 26 + #else + const Platform SYSTEM_PLATFORM = PLATFORM_HAIKU64; + #define SYSTEM_PLATFORM_NAME "haiku64" + #define CONFIG_SYSTEM_PLATFORM CONFIGS_GENERIC_OFFSET + 27 + #define CONFIG_STATIC_DEBUG_PLATFORM CONFIGS_GENERIC_OFFSET + 28 + #define CONFIG_STATIC_RELEASE_PLATFORM CONFIGS_GENERIC_OFFSET + 29 + #endif + #define CONFIG_STATIC_LIB_FILE_EXTENSION "a" + #define CONFIG_DYNAMIC_LIB_FILE_EXTENSION "so" + + #define SYSTEM_GENERIC_PLATFORM_NAME "haiku" + #define CONFIG_GENERIC_SYSTEM_PLATFORM 15 + #define CONFIG_GENERIC_STATIC_DEBUG_PLATFORM 16 + #define CONFIG_GENERIC_STATIC_RELEASE_PLATFORM 17 #endif const char* asString(OptimizationLevel optLevel); diff --git a/include/Platform.hpp b/include/Platform.hpp index 74b3a3d..ffe7038 100644 --- a/include/Platform.hpp +++ b/include/Platform.hpp @@ -27,7 +27,11 @@ namespace sibs PLATFORM_BSD = 1 << 10, PLATFORM_OPENBSD = 1 << 11 | PLATFORM_BSD, PLATFORM_OPENBSD32 = 1 << 12 | PLATFORM_OPENBSD, - PLATFORM_OPENBSD64 = 1 << 13 | PLATFORM_OPENBSD + PLATFORM_OPENBSD64 = 1 << 13 | PLATFORM_OPENBSD, + + PLATFORM_HAIKU = 1 << 20, + PLATFORM_HAIKU32 = 1 << 21 | PLATFORM_HAIKU, + PLATFORM_HAIKU64 = 1 << 22 | PLATFORM_HAIKU }; const StringViewMap PLATFORM_BY_NAME = { @@ -44,11 +48,14 @@ namespace sibs { "bsd", PLATFORM_BSD }, { "openbsd", PLATFORM_OPENBSD }, { "openbsd32", PLATFORM_OPENBSD32 }, - { "openbsd64", PLATFORM_OPENBSD64 } + { "openbsd64", PLATFORM_OPENBSD64 }, + { "haiku", PLATFORM_HAIKU }, + { "haiku32", PLATFORM_HAIKU32 }, + { "haiku64", PLATFORM_HAIKU64 }, }; bool containsPlatform(const std::vector &platforms, Platform platform); const char* asString(Platform platform); Platform getPlatformByName(StringView name); bool isSamePlatformFamily(Platform a, Platform b); -} \ No newline at end of file +} diff --git a/include/env.hpp b/include/env.hpp index d8b444b..9cdaf9d 100644 --- a/include/env.hpp +++ b/include/env.hpp @@ -8,6 +8,7 @@ #define OS_TYPE_LINUX 1 #define OS_TYPE_APPLE 2 #define OS_TYPE_OPENBSD 2 +#define OS_TYPE_HAIKU 10 #if defined(_WIN32) || defined(_WIN64) #if defined(_WIN64) @@ -48,6 +49,11 @@ #define OS_TYPE OS_TYPE_OPENBSD #endif +#ifdef __HAIKU__ + #define OS_FAMILY OS_FAMILY_POSIX + #define OS_TYPE OS_TYPE_HAIKU +#endif + #if defined(__GNUC__) #if defined(__x86_64__) || defined(__pc64__) #define SIBS_ENV_64BIT -- cgit v1.2.3