diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-09 18:37:38 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-09 18:37:38 +0100 |
| commit | 002ab9094f638c46d5db95d478e71c10933aceb2 (patch) | |
| tree | 56b62717a83c68e10d0f0d40b831e6e9273ffff5 /doc/BUILD.md | |
| parent | 0844588c521be6254de7aed62c9d018170b3af5b (diff) | |
docs: Condense HOWTO.md, move details to technical docs
- HOWTO.md: 184→97 lines (quick reference only)
- BUILD.md: Add build modes, header organization, dependency tracking
- ASSET_SYSTEM.md: Add developer workflow section
- TRACKER.md: Add AudioEngine API documentation
Net: -147 lines in HOWTO.md
Diffstat (limited to 'doc/BUILD.md')
| -rw-r--r-- | doc/BUILD.md | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/doc/BUILD.md b/doc/BUILD.md index 1f65122..7cb3473 100644 --- a/doc/BUILD.md +++ b/doc/BUILD.md @@ -21,8 +21,17 @@ cmake --build build_final -j4 | Mode | Flags | Use Case | |------|-------|----------| | Debug | `-DCMAKE_BUILD_TYPE=Debug` | Development, full error checking + debug features | +| SIZE_OPT | `-DDEMO_SIZE_OPT=ON` | Size-optimized, with checks | | STRIP_ALL | `-DDEMO_STRIP_ALL=ON` | Release candidate, full error checking, no debug features (~64k target) | | FINAL_STRIP | `-DDEMO_FINAL_STRIP=ON` | Final release, no error checking, absolute minimum size | +| STRIP_EXTERNAL_LIBS | `-DDEMO_STRIP_EXTERNAL_LIBS=ON` | Size measurement only (binary won't run) | + +**Build Hierarchy:** +- **Debug:** Full checks + debug features (hot-reload, seek, etc.) +- **STRIP_ALL:** Full checks, no debug (~64k target, always fullscreen) +- **FINAL_STRIP:** No checks, no debug (absolute minimum, ⚠️ dangerous) + +**Note:** `DEMO_ALL_OPTIONS=ON` enables tests, tools, AND `STRIP_ALL`. ## Dependencies @@ -67,3 +76,21 @@ open build/demo.xcodeproj ``` Use Xcode Metal debugger for shader performance analysis. + +## Build System Internals + +**Asset Dependency Tracking:** +- CMake tracks 42 demo + 17 test assets +- Editing shaders/audio/sequences auto-triggers rebuild +- Asset lists parsed to extract individual file dependencies + +**Header Organization:** +- `asset_manager_dcl.h`: Forward declarations +- `asset_manager.h`: Core API (GetAsset/DropAsset) +- `asset_manager_utils.h`: Typed helpers + +**Code Generation:** +- Timeline: `seq_compiler` → `generated/timeline.cc` +- Music: `tracker_compiler` → `generated/music.cc` +- Assets: `asset_packer` → `generated/assets.h` + `assets_data.cc` +- Cross-compilation uses host-native tools for generation |
