summaryrefslogtreecommitdiff
path: root/cmake/DemoCodegen.cmake
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-03-12 21:04:38 +0100
committerskal <pascal.massimino@gmail.com>2026-03-12 21:04:38 +0100
commit67c6f166748a4012122a6e978f2f7dbdaee503cc (patch)
tree7f62b3563bb3a3ad9b14df3665c31f79979df9e5 /cmake/DemoCodegen.cmake
parent747250a4e4d2a1dd9109b30b3fcfad05d526b408 (diff)
fix(build): move generated assets to per-build binary dir
assets_data.cc was shared in src/generated/ across all builds. When a native debug build regenerated it with --disk_load (file paths), then build_win compiled with STRIP_ALL=ON, the disk-load fopen() path was compiled out, leaving raw macOS paths as shader source content — causing wgpu WGSL parse errors on Wine. Fix: GEN_DEMO_H/CC and all stamps now live in CMAKE_CURRENT_BINARY_DIR/ src/generated/ so each build dir independently generates assets in the correct mode (embedded vs disk-load). Added CMAKE_CURRENT_BINARY_DIR/src to CORE_INCLUDES so the binary-dir assets.h is resolved first. handoff(Gemini): build system fix — assets are now per-build-dir; tests 35/35 pass; build_win produces embedded shaders. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'cmake/DemoCodegen.cmake')
-rw-r--r--cmake/DemoCodegen.cmake12
1 files changed, 8 insertions, 4 deletions
diff --git a/cmake/DemoCodegen.cmake b/cmake/DemoCodegen.cmake
index a353fc7..7fc7f98 100644
--- a/cmake/DemoCodegen.cmake
+++ b/cmake/DemoCodegen.cmake
@@ -198,13 +198,14 @@ parse_asset_list(${FILTERED_AUDIO} AUDIO_DEPS)
parse_asset_list(${FILTERED_MODELS} MODELS_DEPS)
parse_asset_list(${FILTERED_DATA} DATA_DEPS)
-# Single unified output (avoids duplicate symbols)
-set(GEN_DEMO_H ${CMAKE_CURRENT_SOURCE_DIR}/src/generated/assets.h)
-set(GEN_DEMO_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/generated/assets_data.cc)
+# Single unified output (per-build-dir to avoid disk_load vs embedded conflicts)
+set(GEN_DEMO_H ${CMAKE_CURRENT_BINARY_DIR}/src/generated/assets.h)
+set(GEN_DEMO_CC ${CMAKE_CURRENT_BINARY_DIR}/src/generated/assets_data.cc)
# Category-specific targets for granular rebuilds
add_custom_command(
OUTPUT ${GEN_DEMO_H}.shaders_stamp
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/src/generated
COMMAND ${CMAKE_COMMAND} -E touch ${GEN_DEMO_H}.shaders_stamp
DEPENDS ${ASSET_PACKER_DEPENDS} ${WORKSPACE_ASSETS} ${SHADERS_DEPS}
COMMENT "Checking shader assets..."
@@ -213,6 +214,7 @@ add_custom_target(generate_demo_shaders DEPENDS ${GEN_DEMO_H}.shaders_stamp)
add_custom_command(
OUTPUT ${GEN_DEMO_H}.audio_stamp
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/src/generated
COMMAND ${CMAKE_COMMAND} -E touch ${GEN_DEMO_H}.audio_stamp
DEPENDS ${ASSET_PACKER_DEPENDS} ${WORKSPACE_ASSETS} ${AUDIO_DEPS}
COMMENT "Checking audio assets..."
@@ -221,6 +223,7 @@ add_custom_target(generate_demo_audio DEPENDS ${GEN_DEMO_H}.audio_stamp)
add_custom_command(
OUTPUT ${GEN_DEMO_H}.models_stamp
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/src/generated
COMMAND ${CMAKE_COMMAND} -E touch ${GEN_DEMO_H}.models_stamp
DEPENDS ${ASSET_PACKER_DEPENDS} ${WORKSPACE_ASSETS} ${MODELS_DEPS}
COMMENT "Checking model assets..."
@@ -229,6 +232,7 @@ add_custom_target(generate_demo_models DEPENDS ${GEN_DEMO_H}.models_stamp)
add_custom_command(
OUTPUT ${GEN_DEMO_H}.data_stamp
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/src/generated
COMMAND ${CMAKE_COMMAND} -E touch ${GEN_DEMO_H}.data_stamp
DEPENDS ${ASSET_PACKER_DEPENDS} ${WORKSPACE_ASSETS} ${DATA_DEPS}
COMMENT "Checking data assets..."
@@ -255,7 +259,7 @@ endif()
set(GEN_DEMO_H_STAMP ${GEN_DEMO_H}.gen_stamp)
add_custom_command(
OUTPUT ${GEN_DEMO_H_STAMP} ${GEN_DEMO_CC}
- COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_SOURCE_DIR}/src/generated
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/src/generated
COMMAND ${ASSET_PACKER_CMD} ${WORKSPACE_ASSETS} ${GEN_DEMO_H}.new ${GEN_DEMO_CC} ${ASSET_PACKER_FLAGS}
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${GEN_DEMO_H}.new ${GEN_DEMO_H}
COMMAND ${CMAKE_COMMAND} -E touch ${GEN_DEMO_H_STAMP}