mirror of
https://github.com/reactos/CMake.git
synced 2025-02-01 17:42:41 +00:00
CPack/DEB shlibdep options depend on file utility
Missing or missconfigured file utility should not skip adding dependencies. Instead it should print out a fatal error message. Fixes #16486
This commit is contained in:
parent
a0d64ecf8b
commit
e326d8cf3e
@ -587,12 +587,21 @@ function(cpack_deb_prepare_package_vars)
|
|||||||
file(GLOB_RECURSE FILE_PATHS_ LIST_DIRECTORIES false RELATIVE "${WDIR}" "${WDIR}/*")
|
file(GLOB_RECURSE FILE_PATHS_ LIST_DIRECTORIES false RELATIVE "${WDIR}" "${WDIR}/*")
|
||||||
cmake_policy(POP)
|
cmake_policy(POP)
|
||||||
|
|
||||||
|
find_program(FILE_EXECUTABLE file)
|
||||||
|
if(NOT FILE_EXECUTABLE)
|
||||||
|
message(FATAL_ERROR "CPackDeb: file utility is not available. CPACK_DEBIAN_PACKAGE_SHLIBDEPS and CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS options are not available.")
|
||||||
|
endif()
|
||||||
|
|
||||||
# get file info so that we can determine if file is executable or not
|
# get file info so that we can determine if file is executable or not
|
||||||
unset(CPACK_DEB_INSTALL_FILES)
|
unset(CPACK_DEB_INSTALL_FILES)
|
||||||
foreach(FILE_ IN LISTS FILE_PATHS_)
|
foreach(FILE_ IN LISTS FILE_PATHS_)
|
||||||
execute_process(COMMAND file "./${FILE_}"
|
execute_process(COMMAND env LC_ALL=C ${FILE_EXECUTABLE} "./${FILE_}"
|
||||||
WORKING_DIRECTORY "${WDIR}"
|
WORKING_DIRECTORY "${WDIR}"
|
||||||
|
RESULT_VARIABLE FILE_RESULT_
|
||||||
OUTPUT_VARIABLE INSTALL_FILE_)
|
OUTPUT_VARIABLE INSTALL_FILE_)
|
||||||
|
if(NOT FILE_RESULT_ EQUAL 0)
|
||||||
|
message (FATAL_ERROR "CPackDeb: execution of command: '${FILE_EXECUTABLE} ./${FILE_}' failed with exit code: ${FILE_RESULT_}")
|
||||||
|
endif()
|
||||||
list(APPEND CPACK_DEB_INSTALL_FILES "${INSTALL_FILE_}")
|
list(APPEND CPACK_DEB_INSTALL_FILES "${INSTALL_FILE_}")
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user