| 12345678910111213141516171819202122232425262728293031323334353637 |
- function(run_pzip target_name source destination glob)
- file(GLOB_RECURSE files RELATIVE "${source}" "${source}/${glob}")
- set(dstfiles "")
- foreach(filename ${files})
- string(REGEX REPLACE "^/" "" filename "${filename}")
- get_filename_component(dstdir "${destination}/${filename}" DIRECTORY)
- 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 -o "${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)
- add_custom_target(${target_name} ALL
- DEPENDS ${dstfiles}
- WORKING_DIRECTORY "${destination}")
- endfunction(run_pzip)
|