@@ -11,10 +11,13 @@ include(${SYNGINE_SOURCE_DIR}/cmake/CompileShaders.cmake)
1111include (${SYNGINE_SOURCE_DIR } /cmake/CompileMeshes.cmake )
1212include (${SYNGINE_SOURCE_DIR } /cmake/FileBundle.cmake )
1313
14+ # Keep all staged runtime assets under the executable output tree.
15+ set (SYNGINE_STAGED_ROM_DIR "${CMAKE_BINARY_DIR } /$<CONFIG >/bin/rom" )
16+
1417# Function to compile all shaders in a directory
1518function (compile_collect_shaders SHADER_SRC_DIR ALL_SHADERS_LIST )
1619 set (LOCAL_SHADER_OUTPUT_DIR "${CMAKE_BINARY_DIR } /shaders" )
17- set (LOCAL_SHADER_BUNDLE_DIR "${CMAKE_BINARY_DIR } /$< CONFIG >/rom /shaders" )
20+ set (LOCAL_SHADER_BUNDLE_DIR "${SYNGINE_STAGED_ROM_DIR} /shaders" )
1821 file (MAKE_DIRECTORY ${LOCAL_SHADER_OUTPUT_DIR} ) # Ensure output directory exists
1922 set (LOCAL_BGFX_CORE_INCLUDE_DIR "${SYNGINE_SOURCE_DIR } /third_party/bgfx.cmake/bgfx/src" )
2023
@@ -67,7 +70,7 @@ function(compile_collect_default_gizmos GIZMO_BUNDLE_OUTPUT_VAR)
6770
6871 create_file_bundle (
6972 BUNDLE_NAME "default_gizmos"
70- OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR } /$< CONFIG >/rom /gizmos"
73+ OUTPUT_DIRECTORY "${SYNGINE_STAGED_ROM_DIR} /gizmos"
7174 SOURCE_DIRECTORY "${DEFAULT_GIZMO_SOURCE_DIR } "
7275 INPUT_FILES ${DEFAULT_GIZMO_ENTRIES}
7376 BUNDLE_FILE_OUTPUT_VAR GENERATED_GIZMO_BUNDLE
@@ -90,7 +93,7 @@ function(compile_collect_asset_bundle ASSET_SRC_DIR BUNDLE_NAME ASSET_BUNDLE_OUT
9093
9194 create_file_bundle (
9295 BUNDLE_NAME "${BUNDLE_NAME} "
93- OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR } /$< CONFIG >/rom /${BUNDLE_NAME} "
96+ OUTPUT_DIRECTORY "${SYNGINE_STAGED_ROM_DIR} /${BUNDLE_NAME} "
9497 SOURCE_DIRECTORY "${ASSET_SRC_DIR} "
9598 INPUT_FILES ${ASSET_ENTRIES}
9699 BUNDLE_FILE_OUTPUT_VAR GENERATED_ASSET_BUNDLE
@@ -101,16 +104,11 @@ endfunction()
101104
102105# Asset handling helpers
103106function (_add_assets_win_linux target )
104- set (ROM_DIR "$<TARGET_FILE_DIR :${target} >/rom" )
105-
106107 get_target_property (COPY_ROM ${target} SYNGINE_COPY_ROM)
107108 if (COPY_ROM)
108109 add_custom_command (TARGET ${target} POST_BUILD
109- COMMAND ${CMAKE_COMMAND } -E make_directory "${ROM_DIR} "
110- COMMAND ${CMAKE_COMMAND } -E copy_directory
111- "${CMAKE_BINARY_DIR } /$<CONFIG >/rom"
112- "${ROM_DIR} "
113- COMMENT "Copying staged rom assets to executable directory"
110+ COMMAND ${CMAKE_COMMAND } -E make_directory "$<TARGET_FILE_DIR :${target} >/rom"
111+ COMMENT "ROM assets are staged directly into executable directory"
114112 )
115113 endif ()
116114endfunction ()
@@ -123,7 +121,7 @@ function(_add_assets_mac target)
123121 add_custom_command (TARGET ${target} POST_BUILD
124122 COMMAND ${CMAKE_COMMAND } -E make_directory "${ROM_DIR} "
125123 COMMAND ${CMAKE_COMMAND } -E copy_directory
126- "${CMAKE_BINARY_DIR } /$< CONFIG >/rom "
124+ "${SYNGINE_STAGED_ROM_DIR} "
127125 "${ROM_DIR} "
128126 COMMENT "Copying staged rom assets into app Resources"
129127 )
@@ -197,6 +195,7 @@ function(add_assets target)
197195 DEPENDS "${ICON_BUNDLE_PATH} "
198196 )
199197 add_dependencies (${target} CompileMacAssets )
198+ set_target_properties (CompileMacAssets PROPERTIES FOLDER "Game" )
200199
201200 # set the compiled asset bundle as a target for the app and copy it into Resources
202201 target_sources (${target} PRIVATE "${ASSET_PACKAGE} " )
@@ -219,6 +218,7 @@ function(add_assets target)
219218 DEPENDS "${FINAL_PLIST_PATH} "
220219 )
221220 add_dependencies (${target} InfoPlistMerge )
221+ set_target_properties (InfoPlistMerge PROPERTIES FOLDER "Game" )
222222
223223 # add the Info.plist to the target and have it depend on the icon
224224 set_property (
@@ -316,7 +316,7 @@ if(EXISTS "${GAME_ASSET_DIR}")
316316 elseif (ASSET_SUBDIR STREQUAL "meshes" )
317317 compile_all_meshes (
318318 SOURCE_DIRECTORY "${GAME_ASSET_DIR} /${ASSET_SUBDIR} "
319- OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR } /$< CONFIG >/rom /meshes"
319+ OUTPUT_DIRECTORY "${SYNGINE_STAGED_ROM_DIR} /meshes"
320320 BUNDLE_FILES_OUTPUT_VAR ALL_BUNDLED_MESH_FILES
321321 )
322322 else ()
@@ -343,27 +343,31 @@ message(STATUS "SyngineGame: Compiled default gizmo bundles for ${name}: ${ALL_B
343343if (ALL_COMPILED_SHADER_BINARIES)
344344 add_custom_target (GameShaders ALL DEPENDS ${ALL_COMPILED_SHADER_BINARIES} )
345345 add_dependencies (${name} GameShaders )
346+ set_target_properties (GameShaders PROPERTIES FOLDER "Game" )
346347 message (STATUS "SyngineGame: Added GameShaders target for ${name} ." )
347348endif ()
348349
349350# Add dependency on the compiled mesh bundles
350351if (ALL_BUNDLED_MESH_FILES)
351352 add_custom_target (GameMeshes ALL DEPENDS ${ALL_BUNDLED_MESH_FILES} )
352353 add_dependencies (${name} GameMeshes )
354+ set_target_properties (GameMeshes PROPERTIES FOLDER "Game" )
353355 message (STATUS "SyngineGame: Added GameMeshes target for ${name} ." )
354356endif ()
355357
356358# Add dependency on the compiled generic asset bundles
357359if (ALL_BUNDLED_OTHER_ASSET_FILES)
358360 add_custom_target (GameAssets ALL DEPENDS ${ALL_BUNDLED_OTHER_ASSET_FILES} )
359361 add_dependencies (${name} GameAssets )
362+ set_target_properties (GameAssets PROPERTIES FOLDER "Game" )
360363 message (STATUS "SyngineGame: Added GameAssets target for ${name} ." )
361364endif ()
362365
363366# Add dependency on the compiled gizmo bundles
364367if (ALL_BUNDLED_GIZMO_FILES)
365368 add_custom_target (GameGizmos ALL DEPENDS ${ALL_BUNDLED_GIZMO_FILES} )
366369 add_dependencies (${name} GameGizmos )
370+ set_target_properties (GameGizmos PROPERTIES FOLDER "Game" )
367371 message (STATUS "SyngineGame: Added GameGizmos target for ${name} ." )
368372endif ()
369373
0 commit comments