From e2d947ccd6947c9190569fedbb4a90505b5fe9a5 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Mon, 1 Oct 2018 04:51:42 +0200 Subject: Allow specifying project platform without arch --- include/Conf.hpp | 110 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 67 insertions(+), 43 deletions(-) (limited to 'include/Conf.hpp') diff --git a/include/Conf.hpp b/include/Conf.hpp index 8fa3475..d492e99 100644 --- a/include/Conf.hpp +++ b/include/Conf.hpp @@ -7,6 +7,7 @@ #include "utils.hpp" #include "Dependency.hpp" #include "Package.hpp" +#include "Platform.hpp" #include #include #include @@ -108,23 +109,6 @@ namespace sibs GCC, MSVC }; - - enum Platform - { - PLATFORM_ANY, - - PLATFORM_LINUX32, - PLATFORM_LINUX64, - - PLATFORM_WIN32, - PLATFORM_WIN64, - - PLATFORM_MACOS32, - PLATFORM_MACOS64, - - PLATFORM_OPENBSD32, - PLATFORM_OPENBSD64 - }; enum class CVersion { @@ -155,6 +139,26 @@ namespace sibs }; const StringView CONFIGS[] = { + "config.win", + "config.win.static.debug", + "config.win.static.release", + + "config.linux", + "config.linux.static.debug", + "config.linux.static.release", + + "config.macos", + "config.macos.static.debug", + "config.macos.static.release", + + "config.bsd", + "config.bsd.static.debug", + "config.bsd.static.release", + + "config.openbsd", + "config.openbsd.static.debug", + "config.openbsd.static.release", + "config.win32", "config.win32.static.debug", "config.win32.static.release", @@ -188,75 +192,95 @@ namespace sibs "config.openbsd64.static.release" }; const int NUM_CONFIGS = 12; + const int CONFIGS_GENERIC_OFFSET = 15; #if OS_TYPE == OS_TYPE_WINDOWS #ifdef SIBS_ENV_32BIT const Platform SYSTEM_PLATFORM = PLATFORM_WIN32; #define SYSTEM_PLATFORM_NAME "win32" - #define CONFIG_SYSTEM_PLATFORM 0 - #define CONFIG_STATIC_DEBUG_PLATFORM 1 - #define CONFIG_STATIC_RELEASE_PLATFORM 2 + #define CONFIG_SYSTEM_PLATFORM CONFIGS_GENERIC_OFFSET + 0 + #define CONFIG_STATIC_DEBUG_PLATFORM CONFIGS_GENERIC_OFFSET + 1 + #define CONFIG_STATIC_RELEASE_PLATFORM CONFIGS_GENERIC_OFFSET + 2 #else const Platform SYSTEM_PLATFORM = PLATFORM_WIN64; #define SYSTEM_PLATFORM_NAME "win64" - #define CONFIG_SYSTEM_PLATFORM 3 - #define CONFIG_STATIC_DEBUG_PLATFORM 4 - #define CONFIG_STATIC_RELEASE_PLATFORM 5 + #define CONFIG_SYSTEM_PLATFORM CONFIGS_GENERIC_OFFSET + 3 + #define CONFIG_STATIC_DEBUG_PLATFORM CONFIGS_GENERIC_OFFSET + 4 + #define CONFIG_STATIC_RELEASE_PLATFORM CONFIGS_GENERIC_OFFSET + 5 #endif #define CONFIG_STATIC_LIB_FILE_EXTENSION L"lib" #define CONFIG_DYNAMIC_LIB_FILE_EXTENSION L"dll" + + #define SYSTEM_GENERIC_PLATFORM_NAME "win" + #define CONFIG_GENERIC_SYSTEM_PLATFORM 0 + #define CONFIG_GENERIC_STATIC_DEBUG_PLATFORM 1 + #define CONFIG_GENERIC_STATIC_RELEASE_PLATFORM 2 #elif OS_TYPE == OS_TYPE_LINUX #ifdef SIBS_ENV_32BIT const Platform SYSTEM_PLATFORM = PLATFORM_LINUX32; #define SYSTEM_PLATFORM_NAME "linux32" - #define CONFIG_SYSTEM_PLATFORM 6 - #define CONFIG_STATIC_DEBUG_PLATFORM 7 - #define CONFIG_STATIC_RELEASE_PLATFORM 8 + #define CONFIG_SYSTEM_PLATFORM CONFIGS_GENERIC_OFFSET + 6 + #define CONFIG_STATIC_DEBUG_PLATFORM CONFIGS_GENERIC_OFFSET + 7 + #define CONFIG_STATIC_RELEASE_PLATFORM CONFIGS_GENERIC_OFFSET + 8 #else const Platform SYSTEM_PLATFORM = PLATFORM_LINUX64; #define SYSTEM_PLATFORM_NAME "linux64" - #define CONFIG_SYSTEM_PLATFORM 9 - #define CONFIG_STATIC_DEBUG_PLATFORM 10 - #define CONFIG_STATIC_RELEASE_PLATFORM 11 + #define CONFIG_SYSTEM_PLATFORM CONFIGS_GENERIC_OFFSET + 9 + #define CONFIG_STATIC_DEBUG_PLATFORM CONFIGS_GENERIC_OFFSET + 10 + #define CONFIG_STATIC_RELEASE_PLATFORM CONFIGS_GENERIC_OFFSET + 11 #endif #define CONFIG_STATIC_LIB_FILE_EXTENSION "a" #define CONFIG_DYNAMIC_LIB_FILE_EXTENSION "so" + + #define SYSTEM_GENERIC_PLATFORM_NAME "linux" + #define CONFIG_GENERIC_SYSTEM_PLATFORM 3 + #define CONFIG_GENERIC_STATIC_DEBUG_PLATFORM 4 + #define CONFIG_GENERIC_STATIC_RELEASE_PLATFORM 5 #elif OS_TYPE == OS_TYPE_APPLE #ifdef SIBS_ENV_32BIT const Platform SYSTEM_PLATFORM = PLATFORM_MACOS32; #define SYSTEM_PLATFORM_NAME "macos32" - #define CONFIG_SYSTEM_PLATFORM 12 - #define CONFIG_STATIC_DEBUG_PLATFORM 13 - #define CONFIG_STATIC_RELEASE_PLATFORM 14 + #define CONFIG_SYSTEM_PLATFORM CONFIGS_GENERIC_OFFSET + 12 + #define CONFIG_STATIC_DEBUG_PLATFORM CONFIGS_GENERIC_OFFSET + 13 + #define CONFIG_STATIC_RELEASE_PLATFORM CONFIGS_GENERIC_OFFSET + 14 #else const Platform SYSTEM_PLATFORM = PLATFORM_MACOS64; #define SYSTEM_PLATFORM_NAME "macos64" - #define CONFIG_SYSTEM_PLATFORM 15 - #define CONFIG_STATIC_DEBUG_PLATFORM 16 - #define CONFIG_STATIC_RELEASE_PLATFORM 17 + #define CONFIG_SYSTEM_PLATFORM CONFIGS_GENERIC_OFFSET + 15 + #define CONFIG_STATIC_DEBUG_PLATFORM CONFIGS_GENERIC_OFFSET + 16 + #define CONFIG_STATIC_RELEASE_PLATFORM CONFIGS_GENERIC_OFFSET + 17 #endif #define CONFIG_STATIC_LIB_FILE_EXTENSION "a" #define CONFIG_DYNAMIC_LIB_FILE_EXTENSION "dylib" + + #define SYSTEM_GENERIC_PLATFORM_NAME "macos" + #define CONFIG_GENERIC_SYSTEM_PLATFORM 6 + #define CONFIG_GENERIC_STATIC_DEBUG_PLATFORM 7 + #define CONFIG_GENERIC_STATIC_RELEASE_PLATFORM 8 #elif OS_TYPE == OS_TYPE_OPENBSD #ifdef SIBS_ENV_32BIT const Platform SYSTEM_PLATFORM = PLATFORM_OPENBSD32; #define SYSTEM_PLATFORM_NAME "openbsd32" - #define CONFIG_SYSTEM_PLATFORM 18 - #define CONFIG_STATIC_DEBUG_PLATFORM 19 - #define CONFIG_STATIC_RELEASE_PLATFORM 20 + #define CONFIG_SYSTEM_PLATFORM CONFIGS_GENERIC_OFFSET + 18 + #define CONFIG_STATIC_DEBUG_PLATFORM CONFIGS_GENERIC_OFFSET + 19 + #define CONFIG_STATIC_RELEASE_PLATFORM CONFIGS_GENERIC_OFFSET + 20 #else const Platform SYSTEM_PLATFORM = PLATFORM_OPENBSD64; #define SYSTEM_PLATFORM_NAME "openbsd64" - #define CONFIG_SYSTEM_PLATFORM 21 - #define CONFIG_STATIC_DEBUG_PLATFORM 22 - #define CONFIG_STATIC_RELEASE_PLATFORM 23 + #define CONFIG_SYSTEM_PLATFORM CONFIGS_GENERIC_OFFSET + 21 + #define CONFIG_STATIC_DEBUG_PLATFORM CONFIGS_GENERIC_OFFSET + 22 + #define CONFIG_STATIC_RELEASE_PLATFORM CONFIGS_GENERIC_OFFSET + 23 #endif #define CONFIG_STATIC_LIB_FILE_EXTENSION "a" #define CONFIG_DYNAMIC_LIB_FILE_EXTENSION "so" + + // 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 #endif - bool containsPlatform(const std::vector &platforms, Platform platform); - const char* asString(Platform platform); const char* asString(OptimizationLevel optLevel); bool directoryToIgnore(const FileString &dir, const std::vector &ignoreDirList); bool isProjectNameValid(const std::string &projectName); -- cgit v1.2.3