IceShard 1
A personal game engine project, with development focused on 2D/2.5D games.
Loading...
Searching...
No Matches
ice::build Namespace Reference

Namespaces

namespace  validation

Classes

struct  Platform

Enumerations

enum class  Configuration : ice::u8 { Debug , Develop , Profile , Release }
enum class  System : ice::u8 {
  UWP , Windows , Android , Linux ,
  WebApp
}
enum class  ArchFamily : ice::u8 { Unknown , X86 , ARM , WebAsm }
enum class  Architecture : ice::u8 { x86 , x86_x64 , Arm64 , WebAsm32 }
enum class  Compiler : ice::u8 { MSVC , Clang , GCC }

Functions

constexpr auto to_string (Configuration type) noexcept -> std::string_view
constexpr auto arch_family (Architecture arch) noexcept -> ArchFamily
constexpr bool operator== (Platform const &left, System right) noexcept
constexpr bool operator!= (Platform const &left, System right) noexcept
constexpr bool operator== (Platform const &left, ArchFamily right) noexcept
constexpr bool operator!= (Platform const &left, ArchFamily right) noexcept
constexpr bool operator== (Platform const &left, Architecture right) noexcept
constexpr bool operator!= (Platform const &left, Architecture right) noexcept
constexpr bool operator== (Platform const &left, Compiler right) noexcept
constexpr bool operator!= (Platform const &left, Compiler right) noexcept
constexpr bool operator== (Platform const &left, Platform const &right) noexcept
constexpr bool operator!= (Platform const &left, Platform const &right) noexcept
constexpr auto to_string (System type) noexcept -> std::string_view
constexpr auto to_string (ArchFamily type) noexcept -> std::string_view
constexpr auto to_string (Architecture type) noexcept -> std::string_view
constexpr auto to_string (Compiler type) noexcept -> std::string_view
constexpr auto to_string (Platform const &type) noexcept -> std::string_view

Variables

static constexpr bool is_debug = current_config == Configuration::Debug
static constexpr bool is_develop = current_config == Configuration::Develop
static constexpr bool is_profile = current_config == Configuration::Profile
static constexpr bool is_release = current_config == Configuration::Release
static constexpr bool is_windows = current_platform == System::Windows
static constexpr bool is_linux = current_platform == System::Linux
static constexpr bool is_android = current_platform == System::Android
static constexpr bool is_webapp = current_platform == System::WebApp
static constexpr bool is_unix = is_linux || is_android || is_webapp
static constexpr bool is_x64 = current_platform == Architecture::x86_x64 || current_platform == Architecture::Arm64
static constexpr bool is_arm = current_platform == ArchFamily::ARM
static constexpr bool is_msvc = current_platform == Compiler::MSVC
static constexpr bool is_clang = current_platform == Compiler::Clang
static constexpr bool is_gcc = current_platform == Compiler::GCC
static constexpr uint32_t Constant_Hash32_DefaultSeed = 0x428639DA
 The seed used to generate hash values using the ice::hash32 function.
static constexpr uint32_t Constant_Hash64_DefaultSeed = 0x8642DA39
 The seed used to generate hash values using the ice::hash function.
static constexpr uint32_t Constant_StringID_DefaultSeed = 0xDA864239
 The seed used to generate hash values for ice::StringID.
static constexpr bool Constant_StringID_DebugInfoEnabled = current_config == Configuration::Debug || current_config == Configuration::Develop
 Switch controling the default implementation used for ice::StringID.
static constexpr bool Constant_ShardID_DebugInfoEnabled = current_config == Configuration::Debug || current_config == Configuration::Develop
 Switch controling the default implementation used for ice::ShardID.
static constexpr uint32_t Constant_ShardName_DefaultSeed = 0x77a23ab1
 The seed used to generate hash values for ice::detail::ShardName.
static constexpr uint32_t Constant_ShardPayloadID_DefaultSeed = 0x3ab177a2
 The seed used to generate hash values for ice::detail::PayloadID.
static constexpr Platform platform_uwp_x64_msvc
static constexpr Platform platform_windows_x64_msvc
static constexpr Platform platform_windows_x64_clang
static constexpr Platform platform_android_arm64_clang
static constexpr Platform platform_android_x64_clang
static constexpr Platform platform_linux_x64_clang
static constexpr Platform platform_webapp_webasm32_clang
static constexpr Platform all_platforms []

Detailed Description

Copyright 2022 - 2026, Dandielo dandi.nosp@m.elo@.nosp@m.icesh.nosp@m.ard..nosp@m.net SPDX-License-Identifier: MIT

Copyright 2022 - 2025, Dandielo dandi.nosp@m.elo@.nosp@m.icesh.nosp@m.ard..nosp@m.net SPDX-License-Identifier: MIT

Enumeration Type Documentation

◆ ArchFamily

enum class ice::build::ArchFamily : ice::u8
strong
Enumerator
Unknown 
X86 
ARM 
WebAsm 

◆ Architecture

enum class ice::build::Architecture : ice::u8
strong
Enumerator
x86 
x86_x64 
Arm64 
WebAsm32 

◆ Compiler

enum class ice::build::Compiler : ice::u8
strong
Enumerator
MSVC 
Clang 
GCC 

◆ Configuration

enum class ice::build::Configuration : ice::u8
strong
Enumerator
Debug 
Develop 
Profile 
Release 

◆ System

enum class ice::build::System : ice::u8
strong
Enumerator
UWP 
Windows 
Android 
Linux 
WebApp 

Function Documentation

◆ arch_family()

auto ice::build::arch_family ( Architecture arch) -> ArchFamily
constexprnoexcept

◆ operator!=() [1/5]

bool ice::build::operator!= ( Platform const & left,
ArchFamily right )
constexprnoexcept

◆ operator!=() [2/5]

bool ice::build::operator!= ( Platform const & left,
Architecture right )
constexprnoexcept

◆ operator!=() [3/5]

bool ice::build::operator!= ( Platform const & left,
Compiler right )
constexprnoexcept

◆ operator!=() [4/5]

bool ice::build::operator!= ( Platform const & left,
Platform const & right )
constexprnoexcept

◆ operator!=() [5/5]

bool ice::build::operator!= ( Platform const & left,
System right )
constexprnoexcept

◆ operator==() [1/5]

bool ice::build::operator== ( Platform const & left,
ArchFamily right )
constexprnoexcept

◆ operator==() [2/5]

bool ice::build::operator== ( Platform const & left,
Architecture right )
constexprnoexcept

◆ operator==() [3/5]

bool ice::build::operator== ( Platform const & left,
Compiler right )
constexprnoexcept

◆ operator==() [4/5]

bool ice::build::operator== ( Platform const & left,
Platform const & right )
constexprnoexcept

◆ operator==() [5/5]

bool ice::build::operator== ( Platform const & left,
System right )
constexprnoexcept

◆ to_string() [1/6]

auto ice::build::to_string ( ArchFamily type) -> std::string_view
constexprnoexcept

◆ to_string() [2/6]

auto ice::build::to_string ( Architecture type) -> std::string_view
constexprnoexcept

◆ to_string() [3/6]

auto ice::build::to_string ( Compiler type) -> std::string_view
constexprnoexcept

◆ to_string() [4/6]

auto ice::build::to_string ( Configuration type) -> std::string_view
constexprnoexcept

◆ to_string() [5/6]

auto ice::build::to_string ( Platform const & type) -> std::string_view
constexprnoexcept

◆ to_string() [6/6]

auto ice::build::to_string ( System type) -> std::string_view
constexprnoexcept

Variable Documentation

◆ all_platforms

Platform ice::build::all_platforms[]
staticconstexpr
Initial value:
= {
}
static constexpr Platform platform_webapp_webasm32_clang
Definition platform.hxx:119
static constexpr Platform platform_android_arm64_clang
Definition platform.hxx:98
static constexpr Platform platform_linux_x64_clang
Definition platform.hxx:112
static constexpr Platform platform_windows_x64_clang
Definition platform.hxx:91
static constexpr Platform platform_windows_x64_msvc
Definition platform.hxx:84
static constexpr Platform platform_uwp_x64_msvc
Definition platform.hxx:77
static constexpr Platform platform_android_x64_clang
Definition platform.hxx:105

◆ Constant_Hash32_DefaultSeed

uint32_t ice::build::Constant_Hash32_DefaultSeed = 0x428639DA
staticconstexpr

The seed used to generate hash values using the ice::hash32 function.

◆ Constant_Hash64_DefaultSeed

uint32_t ice::build::Constant_Hash64_DefaultSeed = 0x8642DA39
staticconstexpr

The seed used to generate hash values using the ice::hash function.

◆ Constant_ShardID_DebugInfoEnabled

bool ice::build::Constant_ShardID_DebugInfoEnabled = current_config == Configuration::Debug || current_config == Configuration::Develop
staticconstexpr

Switch controling the default implementation used for ice::ShardID.

Note
Currently ShardID will contain debug fields when compiled on 'Debug' or 'Develop' builds.
Remarks
Currently unused due to limitations with ice::ShardID objects.

◆ Constant_ShardName_DefaultSeed

uint32_t ice::build::Constant_ShardName_DefaultSeed = 0x77a23ab1
staticconstexpr

The seed used to generate hash values for ice::detail::ShardName.

◆ Constant_ShardPayloadID_DefaultSeed

uint32_t ice::build::Constant_ShardPayloadID_DefaultSeed = 0x3ab177a2
staticconstexpr

The seed used to generate hash values for ice::detail::PayloadID.

◆ Constant_StringID_DebugInfoEnabled

bool ice::build::Constant_StringID_DebugInfoEnabled = current_config == Configuration::Debug || current_config == Configuration::Develop
staticconstexpr

Switch controling the default implementation used for ice::StringID.

Note
Currently StringID will contain debug fields when compiled on 'Debug' or 'Develop' builds.

◆ Constant_StringID_DefaultSeed

uint32_t ice::build::Constant_StringID_DefaultSeed = 0xDA864239
staticconstexpr

The seed used to generate hash values for ice::StringID.

◆ is_android

bool ice::build::is_android = current_platform == System::Android
staticconstexpr

◆ is_arm

bool ice::build::is_arm = current_platform == ArchFamily::ARM
staticconstexpr

◆ is_clang

bool ice::build::is_clang = current_platform == Compiler::Clang
staticconstexpr

◆ is_debug

bool ice::build::is_debug = current_config == Configuration::Debug
staticconstexpr

◆ is_develop

bool ice::build::is_develop = current_config == Configuration::Develop
staticconstexpr

◆ is_gcc

bool ice::build::is_gcc = current_platform == Compiler::GCC
staticconstexpr

◆ is_linux

bool ice::build::is_linux = current_platform == System::Linux
staticconstexpr

◆ is_msvc

bool ice::build::is_msvc = current_platform == Compiler::MSVC
staticconstexpr

◆ is_profile

bool ice::build::is_profile = current_config == Configuration::Profile
staticconstexpr

◆ is_release

bool ice::build::is_release = current_config == Configuration::Release
staticconstexpr

◆ is_unix

bool ice::build::is_unix = is_linux || is_android || is_webapp
staticconstexpr

◆ is_webapp

bool ice::build::is_webapp = current_platform == System::WebApp
staticconstexpr

◆ is_windows

bool ice::build::is_windows = current_platform == System::Windows
staticconstexpr

◆ is_x64

bool ice::build::is_x64 = current_platform == Architecture::x86_x64 || current_platform == Architecture::Arm64
staticconstexpr

◆ platform_android_arm64_clang

Platform ice::build::platform_android_arm64_clang
staticconstexpr
Initial value:
= {
.name = "android-arm64-clang",
.system = System::Android,
.architecture = Architecture::Arm64,
.compiler = Compiler::Clang
}
@ Android
Definition platform.hxx:15
@ Clang
Definition platform.hxx:39
@ Arm64
Definition platform.hxx:32

◆ platform_android_x64_clang

Platform ice::build::platform_android_x64_clang
staticconstexpr
Initial value:
= {
.name = "android-x64-clang",
.system = System::Android,
.architecture = Architecture::x86_x64,
.compiler = Compiler::Clang
}
@ x86_x64
Definition platform.hxx:31

◆ platform_linux_x64_clang

Platform ice::build::platform_linux_x64_clang
staticconstexpr
Initial value:
= {
.name = "linux-x64-clang",
.system = System::Linux,
.architecture = Architecture::x86_x64,
.compiler = Compiler::Clang
}
@ Linux
Definition platform.hxx:16

◆ platform_uwp_x64_msvc

Platform ice::build::platform_uwp_x64_msvc
staticconstexpr
Initial value:
= {
.name = "uwp-x64-msvc",
.system = System::UWP,
.architecture = Architecture::x86_x64,
.compiler = Compiler::MSVC
}
@ UWP
Definition platform.hxx:13
@ MSVC
Definition platform.hxx:38

◆ platform_webapp_webasm32_clang

Platform ice::build::platform_webapp_webasm32_clang
staticconstexpr
Initial value:
= {
.name = "webapp-webasm32-clang",
.system = System::WebApp,
.architecture = Architecture::WebAsm32,
.compiler = Compiler::Clang
}
@ WebApp
Definition platform.hxx:17
@ WebAsm32
Definition platform.hxx:33

◆ platform_windows_x64_clang

Platform ice::build::platform_windows_x64_clang
staticconstexpr
Initial value:
= {
.name = "windows-x64-clang",
.system = System::Windows,
.architecture = Architecture::x86_x64,
.compiler = Compiler::Clang
}
@ Windows
Definition platform.hxx:14

◆ platform_windows_x64_msvc

Platform ice::build::platform_windows_x64_msvc
staticconstexpr
Initial value:
= {
.name = "windows-x64-msvc",
.system = System::Windows,
.architecture = Architecture::x86_x64,
.compiler = Compiler::MSVC
}