1#ifndef LIBSBX_UTILITY_TARGET_HPP_
2#define LIBSBX_UTILITY_TARGET_HPP_
7namespace sbx::utility {
10enum class build_configuration : std::uint8_t {
15#if defined(DEBUG) || !defined(NDEBUG)
16inline constexpr auto build_configuration_v = build_configuration::debug;
18inline constexpr auto build_configuration_v = build_configuration::release;
22 inline static constexpr auto value = (build_configuration_v == build_configuration::debug);
25inline constexpr auto is_build_configuration_debug_v = is_build_configuration_debug::value;
28enum class operating_system : std::uint8_t {
35#if defined(WIN32) || defined(_WIN32)
36inline constexpr auto operating_system_v = operating_system::windows;
37#elif defined(__APPLE__)
38inline constexpr auto operating_system_v = operating_system::mac;
39#elif defined(__linux__) || defined(__linux)
40inline constexpr auto operating_system_v = operating_system::linux;
42inline constexpr auto operating_system_v = operating_system::unknown;
46enum class compiler : std::uint8_t {
54inline constexpr auto compiler_v = compiler::clang;
55#elif (defined(__GNUC__) || defined(__GNUG__) || defined(__MINGW32__))
56inline constexpr auto compiler_v = compiler::gnu;
57#elif defined(__MSC_VER)
58inline constexpr auto compiler_v = compiler::msc;
60inline constexpr auto compiler_v = compiler::unknown;
63#if defined(SBX_CONSTEXPR_ENABLED)
64#define SBX_CONSTEXPR constexpr
Definition: target.hpp:21