1
0
Fork 0

switch from file to readelf for gaining the files hash for the debug symbols (#3410)

* switch from file to readelf for gaining the files hash for the debug symbols.

* sharpen regex

* remove debug
This commit is contained in:
Wilfried Goesgens 2017-10-13 12:33:46 +02:00 committed by Frank Celler
parent 5eaf67651d
commit db433ea15e
3 changed files with 20 additions and 20 deletions

View File

@ -552,7 +552,7 @@ if (USE_MAINTAINER_MODE)
endif () endif ()
include(debugInformation) include(debugInformation)
find_program(FILE_EXECUTABLE file) find_program(READELF_EXECUTABLE readelf)
detect_binary_id_type(CMAKE_DEBUG_FILENAMES_SHA_SUM) detect_binary_id_type(CMAKE_DEBUG_FILENAMES_SHA_SUM)
################################################################################ ################################################################################

View File

@ -17,18 +17,18 @@ macro(install_debinfo
set(FILE ${USER_OUTPUT_DIRECTORY}/${USER_TARGET}${CMAKE_EXECUTABLE_SUFFIX}) set(FILE ${USER_OUTPUT_DIRECTORY}/${USER_TARGET}${CMAKE_EXECUTABLE_SUFFIX})
set(STRIP_FILE ${STRIP_DIR}/${USER_TARGET}${CMAKE_EXECUTABLE_SUFFIX}) set(STRIP_FILE ${STRIP_DIR}/${USER_TARGET}${CMAKE_EXECUTABLE_SUFFIX})
if (NOT MSVC AND CMAKE_STRIP AND FILE_EXECUTABLE AND STRIP_FILE) if (NOT MSVC AND CMAKE_STRIP AND READELF_EXECUTABLE AND STRIP_FILE)
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${STRIP_DIR}) execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${STRIP_DIR})
execute_process(COMMAND ${CMAKE_COMMAND} -E remove ${STRIP_FILE}) execute_process(COMMAND ${CMAKE_COMMAND} -E remove ${STRIP_FILE})
execute_process( execute_process(
COMMAND ${FILE_EXECUTABLE} ${FILE} COMMAND ${READELF_EXECUTABLE} -n ${FILE}
OUTPUT_VARIABLE FILE_RESULT) OUTPUT_VARIABLE READELF_RESULT)
string(REGEX string(REGEX
REPLACE ".*=([a-z0-9]*),.*" "\\1" REPLACE ".*ID: *([a-f0-9]*).*" "\\1"
FILE_CHECKSUM FILE_CHECKSUM
${FILE_RESULT} "${READELF_RESULT}"
) )
string(LENGTH ${FILE_CHECKSUM} FILE_CHECKSUM_LEN) string(LENGTH ${FILE_CHECKSUM} FILE_CHECKSUM_LEN)
@ -51,17 +51,17 @@ endmacro()
# Detect whether this system has SHA checksums # Detect whether this system has SHA checksums
macro(detect_binary_id_type sourceVar) macro(detect_binary_id_type sourceVar)
set(${sourceVar} false) set(${sourceVar} false)
if (NOT MSVC AND CMAKE_STRIP AND FILE_EXECUTABLE) if (NOT MSVC AND CMAKE_STRIP AND READELF_EXECUTABLE)
execute_process( execute_process(
COMMAND ${FILE_EXECUTABLE} ${FILE_EXECUTABLE} COMMAND ${READELF_EXECUTABLE} -n ${READELF_EXECUTABLE}
OUTPUT_VARIABLE FILE_RESULT) OUTPUT_VARIABLE READELF_RESULT)
string(REGEX string(REGEX
REPLACE ".*=([a-z0-9]*),.*" "\\1" REPLACE ".*ID: *([a-f0-9]*).*" "\\1"
FILE_CHECKSUM FILE_CHECKSUM
${FILE_RESULT} "${READELF_RESULT}"
) )
string(LENGTH ${FILE_CHECKSUM} FILE_CHECKSUM_LEN) string(LENGTH "${FILE_CHECKSUM}" FILE_CHECKSUM_LEN)
if (FILE_CHECKSUM_LEN EQUAL 40) if (FILE_CHECKSUM_LEN EQUAL 40)
set(${sourceVar} true) set(${sourceVar} true)
endif() endif()

View File

@ -33,7 +33,7 @@ set(CMAKE_INSTALL_DEBINFO_DIR @CMAKE_INSTALL_DEBINFO_DIR@)
set(CMAKE_OBJCOPY @CMAKE_OBJCOPY@) set(CMAKE_OBJCOPY @CMAKE_OBJCOPY@)
set(FILE_EXECUTABLE @FILE_EXECUTABLE@) set(READELF_EXECUTABLE @READELF_EXECUTABLE@)
set(INSTALL_CONFIGFILES_LIST) set(INSTALL_CONFIGFILES_LIST)
set(PACKAGING_HANDLE_CONFIG_FILES false) set(PACKAGING_HANDLE_CONFIG_FILES false)