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 --- src/Platform.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/Platform.cpp (limited to 'src/Platform.cpp') diff --git a/src/Platform.cpp b/src/Platform.cpp new file mode 100644 index 0000000..44f42db --- /dev/null +++ b/src/Platform.cpp @@ -0,0 +1,44 @@ +#include "../include/Platform.hpp" + +namespace sibs +{ + bool containsPlatform(const std::vector &platforms, Platform platform) + { + for (Platform vecPlatform : platforms) + { + if(platform & vecPlatform) + return true; + } + return false; + } + + const char* asString(Platform platform) + { + switch (platform) + { + case PLATFORM_ANY: return "any"; + case PLATFORM_LINUX: return "linux"; + case PLATFORM_LINUX32: return "linux32"; + case PLATFORM_LINUX64: return "linux64"; + case PLATFORM_WIN: return "win"; + case PLATFORM_WIN32: return "win32"; + case PLATFORM_WIN64: return "win64"; + case PLATFORM_MACOS: return "macos"; + case PLATFORM_MACOS32: return "macos32"; + case PLATFORM_MACOS64: return "macos64"; + case PLATFORM_BSD: return "bsd"; + case PLATFORM_OPENBSD: return "openbsd"; + case PLATFORM_OPENBSD32: return "openbsd32"; + case PLATFORM_OPENBSD64: return "openbsd64"; + default: return nullptr; + } + } + + Platform getPlatformByName(StringView name) + { + auto it = PLATFORM_BY_NAME.find(name); + if(it != PLATFORM_BY_NAME.end()) + return it->second; + return PLATFORM_INVALID; + } +} \ No newline at end of file -- cgit v1.2.3