summaryrefslogtreecommitdiff
path: root/doc/HOWTO.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/HOWTO.md')
-rw-r--r--doc/HOWTO.md24
1 files changed, 24 insertions, 0 deletions
diff --git a/doc/HOWTO.md b/doc/HOWTO.md
index 36216fa..3a1aee2 100644
--- a/doc/HOWTO.md
+++ b/doc/HOWTO.md
@@ -46,6 +46,30 @@ cmake --build build
```
In this mode, the demo will always start in fullscreen.
+### Final-Final Build (Maximum Stripping)
+
+For the absolute smallest binary (removing ALL error checking), use the `DEMO_FINAL_STRIP` option:
+
+```bash
+# Method 1: CMake target (from normal build directory)
+cd build
+make final
+
+# Method 2: Convenience script (creates build_final/ directory)
+./scripts/build_final.sh
+
+# Method 3: Manual CMake configuration
+cmake -S . -B build_final -DDEMO_FINAL_STRIP=ON
+cmake --build build_final
+```
+
+**⚠️ WARNING:** FINAL_STRIP removes ALL error checking (bounds checks, null checks, assertions). This saves ~500-600 bytes but means crashes will have no error messages. Use ONLY for final release builds, never for development or testing.
+
+**Build Mode Hierarchy:**
+- **Debug**: Full error checking + debug features
+- **STRIP_ALL**: Full error checking, no debug features (~64k target)
+- **FINAL_STRIP**: No error checking, no debug features (absolute minimum size)
+
### Developer Build (All Options)
To enable all features at once (tests, tools, size optimizations, and stripping) for a comprehensive check: