diff options
author | Domen Vrankar <domen.vrankar@gmail.com> | 2021-03-27 22:52:56 (GMT) |
---|---|---|
committer | Domen Vrankar <domen.vrankar@gmail.com> | 2021-03-28 23:26:58 (GMT) |
commit | d0adb2386a87046e9236b1b2b4d1c2706c78a711 (patch) | |
tree | 00d4809ac2422d6432bb0c5ea99ebf58022490e8 /Modules/Internal | |
parent | 699577e7b2ca4e3f987b4a74bb4f88e4cfeff786 (diff) | |
download | CMake-d0adb2386a87046e9236b1b2b4d1c2706c78a711.zip CMake-d0adb2386a87046e9236b1b2b4d1c2706c78a711.tar.gz CMake-d0adb2386a87046e9236b1b2b4d1c2706c78a711.tar.bz2 |
CPackRPM: correctly handle empty dir in single package mode
Enabling CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE while
having an empty directory in non main component
resulted in packaging error that the directory
does not exist.
Fixes: #21951
Diffstat (limited to 'Modules/Internal')
-rw-r--r-- | Modules/Internal/CPack/CPackRPM.cmake | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/Modules/Internal/CPack/CPackRPM.cmake b/Modules/Internal/CPack/CPackRPM.cmake index 08bbc68..d853189 100644 --- a/Modules/Internal/CPack/CPackRPM.cmake +++ b/Modules/Internal/CPack/CPackRPM.cmake @@ -1349,15 +1349,21 @@ function(cpack_rpm_generate_package) continue() endif() - file(GLOB_RECURSE files_for_move_ LIST_DIRECTORIES false RELATIVE + file(GLOB_RECURSE files_for_move_ LIST_DIRECTORIES true RELATIVE "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}/${component_}" "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}/${component_}/*") foreach(f_ IN LISTS files_for_move_) - get_filename_component(dir_path_ "${f_}" DIRECTORY) set(src_file_ "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}/${component_}/${f_}") + if(IS_DIRECTORY "${src_file_}") + file(MAKE_DIRECTORY "${WDIR}/${f_}") + continue() + endif() + + get_filename_component(dir_path_ "${f_}" DIRECTORY) + # check that we are not overriding an existing file that doesn't # match the file that we want to copy if(EXISTS "${src_file_}" AND EXISTS "${WDIR}/${f_}") |