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.
This commit is contained in:
Sam Edwards 2019-08-21 19:10:47 -06:00
parent 9ca4f19b90
commit 6cb62d1d18
1 changed files with 19 additions and 16 deletions

View File

@ -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)