| # Prereq: activate emsdk first (so emcmake/em++ are on PATH) | |
| # Linux/macOS: | |
| source /path/to/emsdk/emsdk_env.sh | |
| # Windows PowerShell: | |
| # & "C:\path\to\emsdk\emsdk_env.ps1" | |
| # ===== Release (fast; same behavior as your original file) ===== | |
| emcmake cmake -S . -B build-release -DCMAKE_BUILD_TYPE=Release | |
| cmake --build build-release -j | |
| # ===== Debug (symbols + assertions) ===== | |
| emcmake cmake -S . -B build-debug -DCMAKE_BUILD_TYPE=Debug | |
| cmake --build build-debug -j | |
| # ===== SAN (ASan + UBSan; great for catching bugs) ===== | |
| emcmake cmake -S . -B build-san -DCMAKE_BUILD_TYPE=SAN | |
| cmake --build build-san -j | |
| # Build a single target (optional) instead of all three: | |
| cmake --build build-release -j --target basis_encoder.js | |
| cmake --build build-release -j --target basis_encoder_threads.js | |
| cmake --build build-release -j --target basis_encoder_threads_wasm64.js | |
| # Toggle Zstd (OFF = smaller binary, no KTX2 Zstd compression) | |
| emcmake cmake -S . -B build-release -DCMAKE_BUILD_TYPE=Release -DKTX2_ZSTANDARD=OFF | |
| cmake --build build-release -j |