summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--cmake/modules/AddDatafile.cmake36
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()