From c0c71c164483b00c084b53b098f91057ad65135f Mon Sep 17 00:00:00 2001 From: skal Date: Wed, 28 Jan 2026 09:55:21 +0100 Subject: feat(build): Add 'final' CMake target for production assembly Introduces a 'final' target that automates the entire production pipeline: building the stripped binary, generating assets, and performing final compression (crunching). - Updated CMakeLists.txt to define the 'final' target. - Updated HOWTO.md with instructions for running 'cmake --build build --target final'. --- CMakeLists.txt | 8 ++++++++ HOWTO.md | 8 ++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f752a63..e95c4dc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -189,3 +189,11 @@ if(DEMO_BUILD_TOOLS) ) target_include_directories(specview PRIVATE src) endif() + +# Final assembly target (strip and pack) +add_custom_target(final + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/scripts/crunch_demo.sh + DEPENDS demo64k + COMMENT "Performing final assembly (crunching)..." + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +) diff --git a/HOWTO.md b/HOWTO.md index 1f2560c..605fdff 100644 --- a/HOWTO.md +++ b/HOWTO.md @@ -42,12 +42,16 @@ In this mode, the demo will always start in fullscreen. ### Packed Build (Binary Crunching) -To build the stripped binary and compress it using `UPX`, run the provided script: +To build the stripped binary and compress it, run the `final` target: +```bash +cmake --build build --target final +``` +Alternatively, you can run the script directly: ```bash ./scripts/crunch_demo.sh ``` -This requires `UPX` to be installed. +This requires `gzexe` (macOS) or `UPX` (Linux/Windows) to be installed. ## Testing -- cgit v1.2.3