Build System¶
Zireael uses CMake presets as the canonical build entrypoint.
Presets¶
Defined in CMakePresets.json:
posix-clang-debugposix-clang-releaseposix-clang-asan-ubsanposix-gcc-debugposix-gcc-releasewindows-clangcl-debugwindows-clangcl-release
Build output root: out/build/<preset>.
Primary Targets¶
Always:
zireael(static library)
Optional:
zireael_shared(shared library,ZIREAEL_BUILD_SHARED=ON)- examples (
ZIREAEL_BUILD_EXAMPLES=ON) - tests (
ZIREAEL_BUILD_TESTS=ON)
Common Configuration Flags¶
ZIREAEL_BUILD_SHAREDZIREAEL_BUILD_EXAMPLESZIREAEL_BUILD_TESTSZIREAEL_WARNINGS_AS_ERRORSZIREAEL_SANITIZE_ADDRESSZIREAEL_SANITIZE_UNDEFINED
Standard Workflows¶
Fast local debug (POSIX)¶
cmake --preset posix-clang-debug
cmake --build --preset posix-clang-debug
ctest --preset posix-clang-debug --output-on-failure
Sanitizer pass (POSIX)¶
cmake --preset posix-clang-asan-ubsan
cmake --build --preset posix-clang-asan-ubsan
ctest --preset posix-clang-asan-ubsan --output-on-failure
Windows debug¶
.\scripts\vsdev.ps1
cmake --preset windows-clangcl-debug
cmake --build --preset windows-clangcl-debug
ctest --preset windows-clangcl-debug --output-on-failure
Notes¶
- Sanitizer flags are not supported for MSVC/clang-cl path in current CMake logic.
- Presets already configure
CMAKE_EXPORT_COMPILE_COMMANDS=ON.