diff options
-rw-r--r-- | cmake/modules/AddDatafile.cmake | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/cmake/modules/AddDatafile.cmake b/cmake/modules/AddDatafile.cmake index ea1c941..d64e865 100644 --- a/cmake/modules/AddDatafile.cmake +++ b/cmake/modules/AddDatafile.cmake @@ -15,13 +15,15 @@ # additional directories with files that will also get included in the final datafile. In case of conflicts, files from # source tree will be used. This is to allow working with binary assets located in source directory. # +# SKIP_SOURCE option can be specified to skip adding the files from SOURCE directory completely. +# # To create the archive the dat.exe is used - for non-Windows platforms an emulator that can run it is required. function(add_datafile DATAFILE_TARGET) cmake_parse_arguments( PARSE_ARGV 1 DATAFILE - "" + "SKIP_SOURCE" "SOURCE;OUTPUT" "RESOURCES" ) @@ -60,20 +62,22 @@ function(add_datafile DATAFILE_TARGET) $<TARGET_FILE:dat> -cu $<SHELL_PATH:${DATAFILE_OUTPUT}> . ) endforeach() - file( - GLOB_RECURSE DATAFILE_DEPENDENCIES - LIST_DIRECTORIES true - CONFIGURE_DEPENDS - "${DATAFILE_SOURCE}/*" - ) - add_custom_command( - OUTPUT ${DATAFILE_OUTPUT} APPEND - DEPENDS ${DATAFILE_DEPENDENCIES} - COMMAND - ${CMAKE_COMMAND} -E chdir ${DATAFILE_SOURCE} - ${CMAKE_COMMAND} -E env "${DATAFILE_VAR}='${DATAFILE_PATHS}'" - ${CMAKE_CORSSCOMPILING_EMULATOR} - $<TARGET_FILE:dat> -cu $<SHELL_PATH:${DATAFILE_OUTPUT}> . - ) + if(NOT DEFINED DATAFILE_SKIP_SOURCE) + file( + GLOB_RECURSE DATAFILE_DEPENDENCIES + LIST_DIRECTORIES true + CONFIGURE_DEPENDS + "${DATAFILE_SOURCE}/*" + ) + add_custom_command( + OUTPUT ${DATAFILE_OUTPUT} APPEND + DEPENDS ${DATAFILE_DEPENDENCIES} + COMMAND + ${CMAKE_COMMAND} -E chdir ${DATAFILE_SOURCE} + ${CMAKE_COMMAND} -E env "${DATAFILE_VAR}='${DATAFILE_PATHS}'" + ${CMAKE_CORSSCOMPILING_EMULATOR} + $<TARGET_FILE:dat> -cu $<SHELL_PATH:${DATAFILE_OUTPUT}> . + ) + endif() add_custom_target(${DATAFILE_TARGET} ALL DEPENDS ${DATAFILE_OUTPUT}) endfunction() |