From 6cb62d1d1815b8cf9acd237a585a67b224fabe3c Mon Sep 17 00:00:00 2001 From: Sam Edwards Date: Wed, 21 Aug 2019 19:10:47 -0600 Subject: [PATCH] CMake: When zlib isn't available, run_pzip() should copy at build-time This prevents copying to configurations that the user isn't going to build, and also plays nice with multi-configuration generators where the configuration isn't known until build-time. --- cmake/macros/RunPzip.cmake | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/cmake/macros/RunPzip.cmake b/cmake/macros/RunPzip.cmake index dd72040714..d8f0c4bec3 100644 --- a/cmake/macros/RunPzip.cmake +++ b/cmake/macros/RunPzip.cmake @@ -1,13 +1,4 @@ function(run_pzip target_name source destination glob) - if(NOT TARGET host_pzip) - # If pzip isn't built, we just copy instead. - file(COPY "${source}" - DESTINATION "${destination}" - FILES_MATCHING PATTERN "${glob}") - - return() - endif() - file(GLOB_RECURSE files RELATIVE "${source}" "${source}/${glob}") set(dstfiles "") @@ -16,14 +7,26 @@ function(run_pzip target_name source destination glob) get_filename_component(dstdir "${destination}/${filename}" DIRECTORY) - set(dstfile "${filename}.pz") - list(APPEND dstfiles "${destination}/${dstfile}") + if(TARGET host_pzip) + set(dstfile "${filename}.pz") + list(APPEND dstfiles "${destination}/${dstfile}") - add_custom_command(OUTPUT "${destination}/${dstfile}" - COMMAND ${CMAKE_COMMAND} -E make_directory "${dstdir}" - COMMAND host_pzip -c > "${destination}/${dstfile}" < "${source}/${filename}" - DEPENDS host_pzip - COMMENT "") + add_custom_command(OUTPUT "${destination}/${dstfile}" + COMMAND ${CMAKE_COMMAND} -E make_directory "${dstdir}" + COMMAND host_pzip -c > "${destination}/${dstfile}" < "${source}/${filename}" + DEPENDS host_pzip + COMMENT "") + + else() + # If pzip isn't built, we just copy instead. + list(APPEND dstfiles "${destination}/${filename}") + + add_custom_command(OUTPUT "${destination}/${filename}" + COMMAND ${CMAKE_COMMAND} -E + copy_if_different "${source}/${filename}" "${destination}/${filename}" + COMMENT "") + + endif() endforeach(filename)