From 5b04f668367f7e4b2c587b9d4561e45cbf6338db Mon Sep 17 00:00:00 2001 From: TimePath Date: Tue, 22 Mar 2016 10:47:42 +1100 Subject: [PATCH] CMake: incremental pk3 building --- release.cmake | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/release.cmake b/release.cmake index 94128251..b8b4036e 100644 --- a/release.cmake +++ b/release.cmake @@ -7,6 +7,7 @@ add_custom_target(release) string(TIMESTAMP stamp "%Y%m%d") +string(TIMESTAMP filestamp "%Y-%m-%d") file(STRINGS data/xonotic-data.pk3dir/defaultXonotic.cfg _contents REGEX "^gameversion ") if (NOT _contents) @@ -97,25 +98,26 @@ function(buildpk3 pk3) message("registered pk3 ${pk3}") set(deps) foreach (file IN LISTS files) - get_filename_component(rel ${file} DIRECTORY) - set(marker "done.data/${pk3}/${file}") + set(marker "done.data/${pk3}dir/${file}") string(REPLACE "#" "_" marker ${marker}) # OUTPUT cannot contain '#' + list(APPEND deps "${marker}") + get_filename_component(rel ${file} DIRECTORY) add_custom_command(OUTPUT ${marker} + DEPENDS "${dir}/${file}" COMMAND ${CMAKE_COMMAND} "-Dsrc=${PROJECT_SOURCE_DIR}/${dir}/${file}" - "-Ddst=data/${pk3}/${rel}" - "-Dconv=data/${pk3}/${file}" + "-Ddst=data/${pk3}dir/${rel}" + "-Dconv=data/${pk3}dir/${file}" -P "transform-${filter}.cmake" VERBATIM) - list(APPEND deps ${marker}) endforeach () - add_custom_target(${pk3} DEPENDS ${deps}) - add_custom_target(${pk3}-zip DEPENDS ${pk3}.zip) - add_dependencies(release ${pk3}-zip) - add_custom_command(OUTPUT ${pk3}.zip - DEPENDS ${pk3} - COMMAND ${CMAKE_COMMAND} -E tar "cfv" "../../${pk3}.zip" --format=zip * - WORKING_DIRECTORY "data/${pk3}") + add_custom_target(${pk3}dir DEPENDS ${deps}) + add_custom_target(${pk3}dir-zip DEPENDS ${pk3}) + add_dependencies(release ${pk3}dir-zip) + add_custom_command(OUTPUT ${pk3} + DEPENDS ${pk3}dir + COMMAND ${CMAKE_COMMAND} -E tar cvf "../../${pk3}" --mtime=${filestamp} --format=zip -- * # TODO: no wildcard + WORKING_DIRECTORY "data/${pk3}dir") endfunction() function(deftransform name) @@ -132,6 +134,7 @@ function(deftransform name) " COMMAND ${CMAKE_COMMAND} -E copy \${src} \${conv}\n" " COMMAND ${PROJECT_SOURCE_DIR}/misc/tools/cached-converter.sh \${conv}\n" " COMMAND ${CMAKE_COMMAND} -E make_directory done.\${conv}\n" + " COMMAND ${CMAKE_COMMAND} -E touch done.\${conv}\n" " RESULT_VARIABLE res_var\n" ")") endfunction() @@ -139,6 +142,7 @@ file(WRITE ${PROJECT_BINARY_DIR}/transform-raw.cmake "execute_process(\n" " COMMAND ${CMAKE_COMMAND} -E copy \${src} \${conv}\n" " COMMAND ${CMAKE_COMMAND} -E make_directory done.\${conv}\n" + " COMMAND ${CMAKE_COMMAND} -E touch done.\${conv}\n" ")") # default to "del_src\;true" -- 2.39.2