| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- # Copies files for the given game into the target res directory
- # GAME_NAME name of the game
- # REL_DIR to which directory these files are relative
- # SRC_FILES which files from the REL_DIR to copy (GLOB)
- macro(COPY_RES_FILES GAME_NAME GAME_RES_TARGET REL_DIR SRC_FILES)
- file( GLOB_RECURSE RES_FILES RELATIVE ${REL_DIR} ${SRC_FILES} )
-
- set(ALL_FILES)
- foreach(SRC_FILE ${RES_FILES})
- add_custom_command(
- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${SRC_FILE}"
- COMMAND ${CMAKE_COMMAND} -E copy_if_different
- "${REL_DIR}/${SRC_FILE}"
- "${CMAKE_CURRENT_BINARY_DIR}/${SRC_FILE}"
- COMMENT "Copy ${SRC_FILE}"
- )
- list(APPEND ALL_FILES "${CMAKE_CURRENT_BINARY_DIR}/${SRC_FILE}" )
- endforeach()
- # create target for copying these files
- add_custom_target( ${GAME_RES_TARGET} DEPENDS ${ALL_FILES} )
- endmacro()
- # convenience to call above with current directory and everything in "res"
- macro(COPY_RES GAME_NAME)
- # a target for all addition asserts (will be done in default compile, but if you target the executable
- # it won't be done -- good for testing)
- add_custom_target( ${GAME_NAME}_ASSETS ALL )
-
- # copy entire "res" directory and "game.config" if there is one
- set(CRG_PATTERN "res/*" "game.config")
- COPY_RES_FILES( ${GAME_NAME} ${GAME_NAME}_CORE_RES
- ${CMAKE_CURRENT_SOURCE_DIR}
- "${CRG_PATTERN}"
- )
- add_dependencies( ${GAME_NAME}_ASSETS ${GAME_NAME}_CORE_RES )
- endmacro()
- # Copies resources from an additional directory
- # GAME_NAME name of the game
- # REL_DIR from which directory
- # ARGN which patterns to copy (should include res/ in name if to be placed in the res/ output)
- macro(COPY_RES_EXTRA GAME_NAME REL_DIR)
- # convert src's to full paths (based on rel_dir)
- set(SRC_FILES)
- foreach(SRC_FILE ${ARGN} )
- list(APPEND SRC_FILES "${REL_DIR}/${SRC_FILE}")
- endforeach()
-
- COPY_RES_FILES( ${GAME_NAME} ${GAME_NAME}_EXTRA_RES ${REL_DIR} "${SRC_FILES}" )
- add_dependencies( ${GAME_NAME}_ASSETS ${GAME_NAME}_EXTRA_RES )
- endmacro()
|