2#ifndef LIBSBX_UTILITY_TARGET_HPP_
3#define LIBSBX_UTILITY_TARGET_HPP_
8namespace sbx::utility {
11enum class build_configuration : std::uint8_t {
16#if defined(DEBUG) || !defined(NDEBUG)
17inline constexpr auto build_configuration_v = build_configuration::debug;
19inline constexpr auto build_configuration_v = build_configuration::release;
23 inline static constexpr auto value = (build_configuration_v == build_configuration::debug);
26inline constexpr auto is_build_configuration_debug_v = is_build_configuration_debug::value;
29enum class operating_system : std::uint8_t {
36#if defined(WIN32) || defined(_WIN32)
37inline constexpr auto operating_system_v = operating_system::windows;
39#elif defined(__APPLE__)
40inline constexpr auto operating_system_v = operating_system::mac;
42#elif defined(__linux__) || defined(__linux)
43inline constexpr auto operating_system_v = operating_system::linux;
46inline constexpr auto operating_system_v = operating_system::unknown;
47#warning "Unknown operating system"
51enum class compiler : std::uint8_t {
59inline constexpr auto compiler_v = compiler::clang;
60#elif (defined(__GNUC__) || defined(__GNUG__) || defined(__MINGW32__))
61inline constexpr auto compiler_v = compiler::gnu;
62#elif defined(__MSC_VER)
63inline constexpr auto compiler_v = compiler::msc;
65inline constexpr auto compiler_v = compiler::unknown;
68#if defined(SBX_CONSTEXPR_ENABLED)
69#define SBX_CONSTEXPR constexpr
Definition: target.hpp:22