CMake option index
Evidence basis: source-verified at the pinned commit. Claims on this page were checked by reading the CNA source at commit 009d40f5; unless a sentence says otherwise, nothing here was built or executed. A syntactic scan; conditional defaults are not evaluated.
Generated page. Produced by python3 scripts/generate_dev_reference.py from the Git objects of CNA commit 009d40f5; do not edit it by hand. It is a syntactic inventory: it locates declarations and files, and does not establish behaviour, build success or test results.
Options
Every option(), cmake_dependent_option() and set(… CACHE …) declaration found by a quote- and parenthesis-aware scan of the CMake files (names that start with an underscore or contain a variable reference are internal and skipped). Read the linked CMake logic before relying on a value: conditional defaults can depend on host or toolchain and can be rewritten after declaration, and a declaration says nothing about which combinations are valid (see selection axes and the CMake architecture page).
| Name | Kind | Default / value | Description | Declared in |
|---|---|---|---|---|
BUILD_GMOCK | cache bool | OFF | tools/platform/standalone_tests/CMakeLists.txt | |
BUILD_SHARED_LIBS | cache bool | OFF | cmake/ThirdPartyFNA3D.cmake | |
CMAKE_EXPORT_COMPILE_COMMANDS | cache bool | ON | Export compilation commands for tooling | cmake/BuildPerformance.cmake |
CMAKE_OSX_DEPLOYMENT_TARGET | cache string | ${CNA_IOS_DEPLOYMENT_TARGET} | Minimum Apple OS version | cmake/ApplePlatform.cmake |
CNA_APPLE_ALLOW_UNVALIDATED_RENDERER | option | OFF | Allow selecting a renderer outside the iOS allow-list (experimentation only; expect build failures) | cmake/ApplePlatform.cmake |
CNA_APPLE_BUNDLE_IDENTIFIER_PREFIX | cache string | com.openeggbert.cna | Reverse-DNS prefix for generated CFBundleIdentifier values (<prefix>.<target>) | cmake/ApplePlatform.cmake |
CNA_APPLE_BUNDLE_MACOS_EXECUTABLES | option | OFF | Emit macOS executables as .app bundles instead of plain command-line binaries | cmake/ApplePlatform.cmake |
CNA_APPLE_BUNDLE_VERSION | cache string | ${PROJECT_VERSION} | CFBundleShortVersionString/CFBundleVersion written into generated Info.plist files | cmake/ApplePlatform.cmake |
CNA_APPLE_DEVELOPMENT_TEAM | cache string | | Apple Developer Team ID used to codesign iOS products; empty disables signing (simulator, CI) | cmake/ApplePlatform.cmake |
CNA_APPLE_IOS_RENDERERS | cache internal | SDL_RENDERER | Renderers CNA wires up for an iOS build | cmake/ApplePlatform.cmake |
CNA_AUDIO_PLATFORM | cache string | SDL3 | Audio platform implementation (SDL3 | SDL2 | NULL | ALSA) | cmake/AudioPlatformSelection.cmake |
CNA_BUILD_APPLE_SMOKE_APP | option | ${CNA_APPLE_IOS} | Build the minimal SDL_main/Game application used to validate an Apple final link | cmake/AppleSmoke.cmake |
CNA_BUILD_BENCHMARKS | option | OFF | Build CNA microbenchmarks | CMakeLists.txt |
CNA_BUILD_CANVAS_HOST_TESTS | option | OFF | Build native host-side Canvas renderer contract tests | modules/renderers/CMakeLists.txt |
CNA_BUILD_C_API | option | OFF | Build the experimental native CNA C API shared library | CMakeLists.txt |
CNA_BUILD_EXAMPLES | option | ON | Build CNA example applications (house3d demo, demo_2d, ...) | CMakeLists.txt |
CNA_BUILD_HTML_DOM_HOST_TESTS | option | OFF | Build native host-side HTML DOM renderer contract tests | modules/renderers/CMakeLists.txt |
CNA_BUILD_INSPECTOR | option | OFF | Build the optional CNA Inspector agent, bridge executable, and local browser UI | CMakeLists.txt |
CNA_BUILD_RENDERER_DESCRIPTOR_GATE | option | ON | Compile every registered renderer family's descriptor, not only the selected families' | cmake/RendererDescriptorGate.cmake |
CNA_BUILD_SVG_DOM_HOST_TESTS | option | OFF | Build native host-side SVG DOM renderer contract tests | modules/renderers/CMakeLists.txt |
CNA_BUILD_TESTS | option | ON | Build CNA tests | CMakeLists.txt |
CNA_CCACHE_BASEDIR | cache path | ${_cna_ccache_basedir_default} | Stable source parent supplied to ccache for path normalization | CMakeLists.txt |
CNA_CNAEXT | option | OFF | Enable CNA CNAEXT extended graphics layer (beyond XNA 4.0) | CMakeLists.txt |
CNA_CNB_ZSTD | cache string | AUTO | Zstandard support for .cnb chunk compression (AUTO/ON/OFF) | modules/CMakeLists.txt |
CNA_CONFIGURE_AUDIT_CACHE | option | ON | Cache successful configure-time audits by a content fingerprint of their inputs | cmake/ConfigureAuditCache.cmake |
CNA_C_API_BUILD_STATIC | option | ON | Build and install the static C API archive | modules/c-api/CMakeLists.txt |
CNA_DEBUG_INFO | cache string | FULL | Debug information for CNA-owned Debug targets (FULL, LINE_TABLES, or SPLIT) | cmake/BuildPerformance.cmake |
CNA_DEVICES | option | OFF | Enable CNA-specific device/sensor extensions beyond XNA 4.0 (battery, camera, clipboard, ...) | CMakeLists.txt |
CNA_DIAGNOSTICS | cache string | OFF | Profiler/diagnostics support: OFF, STATS, or FULL | CMakeLists.txt |
CNA_DIRECT2D_TEST_RUNTIME | cache string | WINE | Cross-compiled Direct2D test runtime (WINE or PROTON) | CMakeLists.txt |
CNA_DIRECTX11_COMPILED_EFFECTS | option | OFF | Build DirectX 11 support for compiled XNA Effect bytecode (plans/plan_fx.md FX-063) | cmake/RendererSelection.cmake |
CNA_DIRECTX12_COMPILED_EFFECTS | option | OFF | Build DirectX 12 support for compiled XNA Effect bytecode (plans/plan_fx.md FX-134) | cmake/RendererSelection.cmake |
CNA_DIRECTX9_COMPILED_EFFECTS | option | OFF | Build DirectX 9 support for compiled XNA Effect bytecode (plans/plan_fx.md FX-070) | cmake/RendererSelection.cmake |
CNA_EASYGL_COMPILED_EFFECTS | option | OFF | Build EasyGL support for compiled XNA Effect bytecode (plans/plan_fx.md FX-062) | cmake/RendererSelection.cmake |
CNA_ENABLE_DRACO | option | OFF | Enable KHR_draco_mesh_compression decoding | modules/CMakeLists.txt |
CNA_ENABLE_EMSCRIPTEN_THREADS | option | OFF | Build CNA's Emscripten ABI with shared-memory pthread support | CMakeLists.txt |
CNA_ENABLE_FONT_PIPELINE | cache string | AUTO | SpriteFont source pipeline: OFF, AUTO or ON (requires FreeType) | CMakeLists.txt |
CNA_ENABLE_IPO | option | OFF | Enable IPO/LTO for CNA-owned release artifacts (not compatible with the static C API package) | cmake/BuildPerformance.cmake |
CNA_ENABLE_MEDIA_PIPELINE | cache string | AUTO | Build-time MP3/WMA/WMV support for the XNA media importers: OFF, AUTO or ON | modules/content-pipeline/CMakeLists.txt |
CNA_ENABLE_NET | option | ON | Build CNA networking (GamerServices + Net, requires ENet) | CMakeLists.txt |
CNA_ENABLE_PCH | option | OFF | Enable the measured precompiled-header pilot for the content unit-test object target | cmake/UnitTests.cmake |
CNA_ENABLE_SDL | cache string | AUTO | Configure the vendored SDL3 dependency (OFF, AUTO, or ON) | cmake/SdlAvailability.cmake |
CNA_ENABLE_UNITY_BUILD | option | OFF | Enable the measured clean-CI unity-build pilot for the core and math modules | cmake/BuildPerformance.cmake |
CNA_ENABLE_VIDEO | cache string | AUTO | Enable FFmpeg video playback (OFF, AUTO, or ON) | CMakeLists.txt |
CNA_EXPORT_COMPILE_COMMANDS | option | ON | Generate compile_commands.json with Ninja and Makefile generators | cmake/BuildPerformance.cmake |
CNA_FNA3D_GIT_REPOSITORY | cache string | https://github.com/FNA-XNA/FNA3D.git | Upstream FNA3D repository fetched for the FNA3D graphics renderer | cmake/ThirdPartyFNA3D.cmake |
CNA_FNA3D_GIT_TAG | cache string | 3240147 | Pinned FNA3D revision used by the FNA3D graphics renderer | cmake/ThirdPartyFNA3D.cmake |
CNA_FXC_EXECUTABLE | cache string | | Path to an fxc-compatible effect compiler, baked in as the .fx route's configure-time default | modules/content-pipeline/CMakeLists.txt |
CNA_FXC_LAUNCHER | cache string | | Program to run the effect compiler through (typically 'wine'), as the configure-time default | modules/content-pipeline/CMakeLists.txt |
CNA_FX_FUZZER_ENTRY_POINT | option | OFF | Build the compiled-effect fuzz harness for libFuzzer/AFL++ instead of standalone replay | cmake/Harnesses.cmake |
CNA_GRAPHICS_RENDERER | cache string | ${_cna_default_renderer} | Graphics renderer to use (${_cna_public_renderer_text}) | cmake/RendererSelection.cmake |
CNA_GRAPHICS_RENDERERS | cache string | | Semicolon-separated list of graphics renderers to compile in (opt-in multi-renderer mode). Empty means single-renderer mode using CNA_GRAPHICS_RENDERER. | cmake/RendererDefaultSelection.cmake |
CNA_IOS_DEPLOYMENT_TARGET | cache string | 16.3 | Minimum iOS version CNA products are built for (CMAKE_OSX_DEPLOYMENT_TARGET default) | cmake/ApplePlatform.cmake |
CNA_IOS_SIMULATOR | option | OFF | Target the iOS simulator SDK instead of a physical device | cmake/toolchains/ios.cmake |
CNA_LINKER | cache string | AUTO | Linker for supported native builds (AUTO, DEFAULT, LLD, or MOLD) | cmake/BuildPerformance.cmake |
CNA_MACOS_DEPLOYMENT_TARGET | cache string | 13.3 | Minimum macOS version CNA products are built for (CMAKE_OSX_DEPLOYMENT_TARGET default) | cmake/ApplePlatform.cmake |
CNA_MAX_VENDORED_BUILD_JOBS | cache string | 2 | Maximum parallel jobs for configure-time vendored dependency builds | cmake/ThirdPartySDL.cmake |
CNA_OPENGL4_COMPILED_EFFECTS | option | OFF | Build OpenGL4 support for compiled XNA Effect bytecode (plans/plan_opengl4_modern_graphics.md GL4-0020) | cmake/RendererSelection.cmake |
CNA_OPENGL4_GL_ERROR_GATE_EXEMPT | cache internal | | plans/plan_opengl4_modern_graphics.md GL4-0016: CTests exempt from the OpenGL4 GL error gate | cmake/TestHelpers.cmake |
CNA_PLATFORM | cache string | SDL3 | Platform implementation (SDL3 | SDL2 | X11 | WAYLAND | HEADLESS | TERMINAL | WIN32) | cmake/PlatformSelection.cmake |
CNA_PLATFORM_CTEST_BINARY | cache string | CnaTests | Test executable the CnaPlatform*/CnaX11* ctest entries run (CnaTests or CnaPlatformModuleTests) | cmake/UnitTests.cmake |
CNA_PLATFORM_HOT_PATH_LINT | option | ON | Reject platform calls inside hot loops at configure time (PLAT-9) | cmake/PlatformHotPathLint.cmake |
CNA_PLATFORM_RATCHET | option | ON | Report remaining direct SDL coupling at configure time (PLAT-8) | cmake/PlatformRatchet.cmake |
CNA_PLATFORM_RATCHET_STRICT | option | ON | Make the platform ratchet a hard error instead of a warning (PLAT-121) | cmake/PlatformRatchet.cmake |
CNA_PORTABLEGL_GIT_REPOSITORY | cache string | https://github.com/rswinkle/PortableGL.git | Upstream PortableGL repository fetched for the PORTABLEGL graphics renderer | cmake/ThirdPartyPortableGL.cmake |
CNA_PORTABLEGL_GIT_TAG | cache string | 63a55db75ab07619797a93ff9bf3909355d27950 | Pinned PortableGL commit (tag 0.100.0) used by the PORTABLEGL graphics renderer | cmake/ThirdPartyPortableGL.cmake |
CNA_RENDERER_CANVAS | option | OFF | Enable HTML Canvas 2D graphics renderer (Emscripten only) | cmake/RendererSelection.cmake |
CNA_RENDERER_DIRECT2D | option | OFF | Enable Direct2D 1.1 graphics renderer (Windows only, 2D-only) | cmake/RendererSelection.cmake |
CNA_RENDERER_DIRECTX11 | option | OFF | Enable Direct3D 11 graphics renderer (Windows only) | cmake/RendererSelection.cmake |
CNA_RENDERER_DIRECTX12 | option | OFF | Enable Direct3D 12 graphics renderer (Windows only) | cmake/RendererSelection.cmake |
CNA_RENDERER_DIRECTX9 | option | OFF | Enable Direct3D 9 graphics renderer (Windows only) | cmake/RendererSelection.cmake |
CNA_RENDERER_FNA3D | option | OFF | Enable FNA3D graphics renderer (FNA-XNA/FNA3D + MojoShader) | cmake/RendererSelection.cmake |
CNA_RENDERER_FREEDIRECT | option | OFF | Enable FreeDirect (DirectDraw via the ../free-direct sibling reimplementation) graphics renderer | cmake/RendererSelection.cmake |
CNA_RENDERER_GDI | option | OFF | Enable classic Win32 GDI (2D-only) graphics renderer | cmake/RendererSelection.cmake |
CNA_RENDERER_HEADLESS | option | OFF | Enable Headless (no GPU/window) graphics renderer | cmake/RendererSelection.cmake |
CNA_RENDERER_HTML_DOM | option | OFF | Enable HTML DOM (CSS-composited) graphics renderer (Emscripten only) | cmake/RendererSelection.cmake |
CNA_RENDERER_METAL | option | OFF | Enable native Apple Metal graphics renderer (macOS only) | cmake/RendererSelection.cmake |
CNA_RENDERER_OPENGL33 | option | OFF | Enable desktop OpenGL 3.3 core graphics renderer (internally: EasyGL) | cmake/RendererSelection.cmake |
CNA_RENDERER_OPENGL4 | option | OFF | Enable real desktop OpenGL 4.x core-profile graphics renderer | cmake/RendererSelection.cmake |
CNA_RENDERER_OPENGLES2 | option | OFF | Enable OpenGL ES 2.0 graphics renderer (internally: EasyGL) | cmake/RendererSelection.cmake |
CNA_RENDERER_OPENGLES3 | option | OFF | Enable OpenGL ES graphics renderer (internally: EasyGL) | cmake/RendererSelection.cmake |
CNA_RENDERER_PORTABLEGL | option | OFF | Enable PortableGL (rswinkle/PortableGL, CPU software OpenGL 3.x) graphics renderer | cmake/RendererSelection.cmake |
CNA_RENDERER_SDL_GPU | option | OFF | Enable SDL_gpu graphics renderer | cmake/RendererSelection.cmake |
CNA_RENDERER_SDL_RENDERER | option | OFF | Enable SDL_Renderer graphics renderer | cmake/RendererSelection.cmake |
CNA_RENDERER_SOFTWARE | option | OFF | Enable Software (CPU rasterizer) graphics renderer | cmake/RendererSelection.cmake |
CNA_RENDERER_STUB | option | OFF | Enable Stub (no-op) graphics renderer | cmake/RendererSelection.cmake |
CNA_RENDERER_SVG_DOM | option | OFF | Enable SVG DOM graphics renderer (Emscripten only) | cmake/RendererSelection.cmake |
CNA_RENDERER_VULKAN | option | OFF | Enable Vulkan graphics renderer | cmake/RendererSelection.cmake |
CNA_RENDERER_WEBGL1 | option | OFF | Enable WebGL 1 graphics renderer, Emscripten only (internally: EasyGL) | cmake/RendererSelection.cmake |
CNA_RENDERER_WEBGL2 | option | OFF | Enable WebGL 2 graphics renderer, Emscripten only (internally: EasyGL) | cmake/RendererSelection.cmake |
CNA_RENDERER_WEBGPU | option | OFF | Enable WebGPU graphics renderer (wgpu-native) | cmake/RendererSelection.cmake |
CNA_ROOT | cache path | ${CMAKE_CURRENT_SOURCE_DIR}/../../.. | Path to the main CNA repository checkout (modules/ physical layout) | tools/media/arithmetic32bit/CMakeLists.txt |
CNA_SANITIZE | cache string | | Comma-separated sanitizers to enable (for example address,undefined); empty disables | cmake/BuildPerformance.cmake |
CNA_SANITIZE_OPTIMIZATION | cache string | DEFAULT | Optimization override for sanitizer builds (DEFAULT, O0, O1, O2, or O3) | cmake/BuildPerformance.cmake |
CNA_SDL2_GIT_REPOSITORY | cache string | https://github.com/libsdl-org/SDL.git | SDL2 upstream repository used when CNA_SDL2_ROOT is empty | cmake/ThirdPartySDL2.cmake |
CNA_SDL2_GIT_TAG | cache string | fa24d868ac2f8fd558e4e914c9863411245db8fd | Pinned SDL 2.30.11 revision used by CNA_PLATFORM=SDL2 | cmake/ThirdPartySDL2.cmake |
CNA_SDL2_ROOT | cache path | | Optional path to an SDL2 source tree (uses pinned FetchContent when empty) | cmake/ThirdPartySDL2.cmake |
CNA_SDLGPU_TEST_VIDEO_DRIVER | cache string | ${_cna_sdlgpu_default_test_video_driver} | SDL video driver used by SDL_GPU renderer integration tests | modules/renderers/sdl-gpu/examples/CMakeLists.txt |
CNA_SDL_GPU_COMPILED_EFFECTS | option | OFF | Build SDL_GPU support for compiled XNA Effect bytecode (plans/plan_fx.md FX-061) | cmake/RendererSelection.cmake |
CNA_SDL_GPU_SHADERCROSS | option | ${_cna_sdl_gpu_shadercross_default} | Enable portable SPIR-V stock shaders through SDL_shadercross | cmake/RendererSelection.cmake |
CNA_SDL_PREBUILT_ROOT | cache path | ${_cna_sdl_prebuilt_default} | Persistent SDL3 install root (survives cmake --clean and build-tree deletion) | cmake/ThirdPartySDL.cmake |
CNA_SDL_SHADERCROSS_GIT_REPOSITORY | cache string | https://github.com/libsdl-org/SDL_shadercross.git | Official SDL_shadercross repository used by the SDL_GPU renderer | cmake/ThirdPartySDLShaderCross.cmake |
CNA_SDL_SHADERCROSS_GIT_TAG | cache string | 1ff05bec573988a98ef9e0260b4da44f512b8367 | Pinned SDL_shadercross revision used by the SDL_GPU renderer | cmake/ThirdPartySDLShaderCross.cmake |
CNA_SHARED_LIBRARY | option | ${_cna_shared_library_supported} | Link the CNA runtime into one shared library (libcna.so) instead of statically into every executable | CMakeLists.txt |
CNA_SHARP_RUNTIME_ROOT | cache path | ${CMAKE_CURRENT_SOURCE_DIR}/../sharp-runtime | Path to the sharp-runtime checkout consumed by this build (sibling by default) | CMakeLists.txt |
CNA_SOFTWARE_COMPILED_EFFECTS | option | OFF | Build Software support for compiled XNA Effect bytecode | cmake/RendererSelection.cmake |
CNA_SPIRV_CROSS_GIT_REPOSITORY | cache string | https://github.com/KhronosGroup/SPIRV-Cross.git | SPIRV-Cross repository used by SDL_shadercross | cmake/ThirdPartySDLShaderCross.cmake |
CNA_SPIRV_CROSS_GIT_TAG | cache string | vulkan-sdk-1.4.350.0 | Pinned SPIRV-Cross revision used by SDL_shadercross | cmake/ThirdPartySDLShaderCross.cmake |
CNA_TEST_ALLOW_LIVE_DISPLAY | option | OFF | Allow CNA_TEST_DISPLAY to name the live desktop display (:0): tests will open windows on it | cmake/TestDisplayPolicy.cmake |
CNA_TEST_DISPLAY | cache string | | DISPLAY forced on GPU/window-creating tests; empty (default) = inherit the caller's. :0 also needs CNA_TEST_ALLOW_LIVE_DISPLAY=ON | cmake/TestDisplayPolicy.cmake |
CNA_USE_CCACHE | option | ON | Use ccache for CNA and sharp-runtime builds when available | CMakeLists.txt |
CNA_USE_SYSTEM_DRACO | option | OFF | Use a system Draco package instead of CNA's pinned submodule | modules/CMakeLists.txt |
CNA_USE_SYSTEM_SDL | option | OFF | Use system SDL packages instead of vendored submodules | cmake/ThirdPartySDL.cmake |
CNA_VULKAN_COMPILED_EFFECTS | option | OFF | Build Vulkan support for compiled XNA Effect bytecode (plans/plan_fx.md FX-065) | cmake/RendererSelection.cmake |
CNA_VULKAN_VALIDATION_GATE_EXEMPT | cache internal | | plan_vulkan.md VULKAN-393: CTests exempt from the Vulkan validation gate | cmake/TestHelpers.cmake |
CNA_WEBGPU_AUTO_DOWNLOAD | option | ON | Download the pinned wgpu-native binary release when CNA_WEBGPU_ROOT is empty | cmake/ThirdPartyWebGPU.cmake |
CNA_WEBGPU_COMPILED_EFFECTS | option | OFF | Build WebGPU support for compiled XNA Effect bytecode (plans/plan_webgpu.md WEBGPU-167) | cmake/RendererSelection.cmake |
CNA_WEBGPU_RESOLVED_ROOT | cache internal | ${_root} | Resolved wgpu-native root | cmake/ThirdPartyWebGPU.cmake |
CNA_WEBGPU_ROOT | cache path | | Root of an extracted official wgpu-native release | cmake/ThirdPartyWebGPU.cmake |
CNA_WEBGPU_RUNTIME_LIBRARY | cache internal | ${_webgpu_runtime_library} | wgpu-native runtime library | cmake/ThirdPartyWebGPU.cmake |
CNA_WEBGPU_VERSION | cache string | v29.0.1.1 | Pinned wgpu-native release used by CNA | cmake/ThirdPartyWebGPU.cmake |
CNA_XNA_INTERMEDIATE_FUZZER_ENTRY_POINT | option | OFF | Build the intermediate-XML fuzz harness for libFuzzer/AFL++ instead of standalone replay | cmake/Harnesses.cmake |
CNA_XNA_MODEL_FUZZER_ENTRY_POINT | option | OFF | Build the .x/FBX fuzz harness for libFuzzer/AFL++ instead of standalone replay | cmake/Harnesses.cmake |
DRACO_GLTF_BITSTREAM | cache bool | ON | Build only Draco's glTF bitstream features | modules/CMakeLists.txt |
DRACO_INSTALL | cache bool | OFF | Disable vendored Draco install rules | modules/CMakeLists.txt |
DRACO_JS_GLUE | cache bool | OFF | Disable vendored Draco JavaScript glue | modules/CMakeLists.txt |
DRACO_MAYA_PLUGIN | cache bool | OFF | Disable vendored Draco Maya plugin | modules/CMakeLists.txt |
DRACO_TESTS | cache bool | OFF | Disable vendored Draco tests | modules/CMakeLists.txt |
DRACO_TRANSCODER_SUPPORTED | cache bool | OFF | Disable vendored Draco transcoder | modules/CMakeLists.txt |
DRACO_UNITY_PLUGIN | cache bool | OFF | Disable vendored Draco Unity plugin | modules/CMakeLists.txt |
DRACO_WASM | cache bool | OFF | Disable vendored Draco WASM targets | modules/CMakeLists.txt |
EASYGL_EMSCRIPTEN_EXCEPTION_MODEL | cache string | JS | Exception ABI used by easy-gl when embedded in CNA | cmake/RendererSelection.cmake |
INSTALL_GTEST | cache bool | OFF | tools/platform/standalone_tests/CMakeLists.txt | |
SDL2_DISABLE_SDL2MAIN | cache bool | ON | cmake/ThirdPartySDL2.cmake | |
SDLSHADERCROSS_CLI | cache bool | OFF | cmake/ThirdPartySDLShaderCross.cmake | |
SDLSHADERCROSS_DXC | cache bool | OFF | cmake/ThirdPartySDLShaderCross.cmake | |
SDLSHADERCROSS_INSTALL | cache bool | OFF | cmake/ThirdPartySDLShaderCross.cmake | |
SDLSHADERCROSS_SHARED | cache bool | OFF | cmake/ThirdPartySDLShaderCross.cmake | |
SDLSHADERCROSS_SPIRVCROSS_SHARED | cache bool | OFF | cmake/ThirdPartySDLShaderCross.cmake | |
SDLSHADERCROSS_STATIC | cache bool | ON | cmake/ThirdPartySDLShaderCross.cmake | |
SDLSHADERCROSS_TESTS | cache bool | OFF | cmake/ThirdPartySDLShaderCross.cmake | |
SDLSHADERCROSS_VENDORED | cache bool | OFF | cmake/ThirdPartySDLShaderCross.cmake | |
SDL_TEST | cache bool | OFF | cmake/ThirdPartySDL2.cmake | |
SDL_TESTS | cache bool | OFF | cmake/ThirdPartySDL2.cmake | |
SDL_TEST_LIBRARY | cache bool | OFF | cmake/ThirdPartySDL2.cmake | |
SHARP_RUNTIME_BUILD_TESTS | cache bool | OFF | Build sharp-runtime tests | CMakeLists.txt |
SHARP_RUNTIME_COMPONENTS | cache string | ${CNA_SHARP_RUNTIME_DEFAULT_COMPONENTS} | Sharp Runtime components required by CNA | CMakeLists.txt |
SHARP_RUNTIME_ENABLE_EMSCRIPTEN_THREADS | cache bool | ON | Build Emscripten targets with shared-memory pthread support | CMakeLists.txt |
SPIRV_CROSS_CLI | cache bool | OFF | cmake/ThirdPartySDLShaderCross.cmake | |
SPIRV_CROSS_ENABLE_CPP | cache bool | OFF | cmake/ThirdPartySDLShaderCross.cmake | |
SPIRV_CROSS_ENABLE_C_API | cache bool | ON | cmake/ThirdPartySDLShaderCross.cmake | |
SPIRV_CROSS_ENABLE_GLSL | cache bool | ON | cmake/ThirdPartySDLShaderCross.cmake | |
SPIRV_CROSS_ENABLE_HLSL | cache bool | ON | cmake/ThirdPartySDLShaderCross.cmake | |
SPIRV_CROSS_ENABLE_MSL | cache bool | ON | cmake/ThirdPartySDLShaderCross.cmake | |
SPIRV_CROSS_ENABLE_REFLECT | cache bool | OFF | cmake/ThirdPartySDLShaderCross.cmake | |
SPIRV_CROSS_ENABLE_TESTS | cache bool | OFF | cmake/ThirdPartySDLShaderCross.cmake | |
SPIRV_CROSS_ENABLE_UTIL | cache bool | OFF | cmake/ThirdPartySDLShaderCross.cmake | |
SPIRV_CROSS_FORCE_PIC | cache bool | ON | cmake/ThirdPartySDLShaderCross.cmake | |
SPIRV_CROSS_SHARED | cache bool | OFF | cmake/ThirdPartySDLShaderCross.cmake | |
SPIRV_CROSS_SKIP_INSTALL | cache bool | ON | cmake/ThirdPartySDLShaderCross.cmake | |
SPIRV_CROSS_STATIC | cache bool | ON | cmake/ThirdPartySDLShaderCross.cmake | |
gtest_force_shared_crt | cache bool | ON | tools/platform/standalone_tests/CMakeLists.txt |
Deep dives on this topic
Long-form pages that explain the exact semantics, invariants and evidence behind this subject.
- CANVAS, HTML_DOM and SVG_DOM: browser object models, refusals and evidence — How CNA's three non-WebGL browser renderers represent sprites, targets and blending, where each refuses work, why two cannot read the back buffer, and which browser tests actually run.
- Compiled XNA effects: admission, reflection, passes and renderer runtimes — What happens to Direct3D 9 Effect Framework bytecode in CNA: admission order and preflight bounds, the reflected object graph, parameter upload, pass-state publication, cloning, the XNB EffectReader and per-renderer translation.
- Configuring CNA per target: routes, toolchains and what a green build proves — How the Linux, Windows (MSVC and MinGW-w64 with Wine), Android, Emscripten and Apple routes configure CNA, run its tests, and what a successful configure, build or test run on each one proves.
- Dependency acquisition: submodules, siblings, fetched pins and host packages — The five ways outside code enters a CNA build, how they compose, what the configure-time SDL build implies, how host packages change what compiles, the sibling contract and how CNA itself is consumed.
- easy-gl and meta-gl: the two-library GL stack beneath the EasyGL family — How meta-gl and easy-gl split loading, typed calls, ownership and failure beneath CNA's five GL identities: revisions CNA needs, feature gating, per-thread state, context loss, tests and build inheritance.
- Framework services and ecosystem quick reference — A map of CNA's input, audio, media, device, network, gamer-services, storage and sharp-runtime types with their current boundaries and owner pages, plus the bindings and showcase applications around CNA.
- free-direct and free-api beneath the FREEDIRECT renderer — How CNA's 2D-only FREEDIRECT renderer sits on free-direct and free-api: the dependency chain, what each library implements, the fopen macro hazard and its containment, inherited limits and evidence rules.
- SDL_GPU shader intake, pipeline keys and draw order — Why CNA's SDL_GPU renderer uses precompiled SPIR-V in SDL_gpu's set convention, which GLSL ShaderEffect accepts, how pipelines are keyed, what state is dynamic, and how draw order and vsync are kept.
- sharp-runtime components and how CNA consumes them — How sharp-runtime is cut into CMake components, how an include maps to a component and link closure, and how CNA 009d40f5 selects, links and instruments the components it needs.
- The CNA ecosystem: siblings, references and consumers — Which repositories CNA builds against, audits against and is consumed by, when CMake needs each sibling, where each sibling draws its boundary, and which revision each statement refers to.
- WebGPU renderer semantics: surfaces, targets, mips and pipeline state — Exact behaviour of CNA's WEBGPU renderer: non-sRGB surface policy, target-relative SpriteBatch coordinates, cube render targets, blit-free mip generation, dynamic and baked state, ordered clears and BC textures.
Related pages
The same subsystem is explained at four altitudes. These are the neighbouring pages at each one.
- User guide
- Building CNA
- Internals
- CMake architecture
- Maintainer workflow
- Change build configuration
- Reference
- Selection axes index