From 7ed0286e8cd40367ab6ba7f100e3b30d9d1ae383 Mon Sep 17 00:00:00 2001 From: skal Date: Wed, 28 Jan 2026 01:27:02 +0100 Subject: opt: Implement build stripping and platform-specific size optimizations Adds a 'STRIP_ALL' mode to minimize binary size for the final build, and refines size optimization flags for macOS. - **STRIP_ALL Mode**: Added a 'DEMO_STRIP_ALL' CMake option that defines 'STRIP_ALL'. In this mode, command-line parsing is bypassed (forcing fullscreen), debug labels/error callbacks are removed from WebGPU, and non-essential code (like iostream) is stripped. - **macOS Optimizations**: Updated CMake to use '-dead_strip' instead of GNU '--gc-sections' on Apple platforms to resolve linker errors and improve dead code elimination. - **Documentation**: Updated HOWTO.md to document the new 'Final / Strip Build' process and FETCH_DEPS.md for optimized wgpu-native build guidance. - **Task 7 & 8**: Marks these tasks as completed in PROJECT_CONTEXT.md. --- HOWTO.md | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'HOWTO.md') diff --git a/HOWTO.md b/HOWTO.md index 73559d0..60a29fa 100644 --- a/HOWTO.md +++ b/HOWTO.md @@ -30,6 +30,16 @@ cmake -S . -B build -DDEMO_SIZE_OPT=ON cmake --build build ``` +### Final / Strip Build + +To produce the smallest possible binary (stripping all unnecessary code like command-line parsing and debug info), use the `DEMO_STRIP_ALL` option: + +```bash +cmake -S . -B build -DDEMO_STRIP_ALL=ON +cmake --build build +``` +In this mode, the demo will always start in fullscreen. + ## Testing **Commit Policy**: Always run tests before committing. Refer to `CONTRIBUTING.md` for details. -- cgit v1.2.3