From 355eb454bb4de45d2d5a950d2b449b04aff616bd Mon Sep 17 00:00:00 2001 From: Aki Date: Fri, 16 Sep 2022 19:43:45 +0200 Subject: Added option to skip source directory from datafile --- cmake/modules/AddDatafile.cmake | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) (limited to 'cmake/modules/AddDatafile.cmake') 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) $ -cu $ . ) 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} - $ -cu $ . - ) + 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} + $ -cu $ . + ) + endif() add_custom_target(${DATAFILE_TARGET} ALL DEPENDS ${DATAFILE_OUTPUT}) endfunction() -- cgit v1.1