mirror of https://github.com/axmolengine/axmol.git
54 lines
2.2 KiB
Plaintext
54 lines
2.2 KiB
Plaintext
# This file was copied from GamePlay
|
|
# 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})
|
|
IF(NOT (SRC_FILE MATCHES "(^\\.\\.)"))
|
|
add_custom_command(
|
|
OUTPUT "${APP_BIN_DIR}/${SRC_FILE}"
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
"${REL_DIR}/${SRC_FILE}"
|
|
"${APP_BIN_DIR}/Resources/${SRC_FILE}"
|
|
COMMENT "Copy ${SRC_FILE}"
|
|
)
|
|
list(APPEND ALL_FILES "${APP_BIN_DIR}/${SRC_FILE}" )
|
|
ENDIF(NOT (SRC_FILE MATCHES "(^\\.\\.)"))
|
|
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 "*")
|
|
COPY_RES_FILES( ${GAME_NAME} ${GAME_NAME}_CORE_RES
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Resources
|
|
"${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 EXTRA_RES 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()
|