mirror of https://gitee.com/bigwinds/arangodb
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:
parent
5eaf67651d
commit
db433ea15e
|
@ -552,7 +552,7 @@ if (USE_MAINTAINER_MODE)
|
|||
endif ()
|
||||
|
||||
include(debugInformation)
|
||||
find_program(FILE_EXECUTABLE file)
|
||||
find_program(READELF_EXECUTABLE readelf)
|
||||
detect_binary_id_type(CMAKE_DEBUG_FILENAMES_SHA_SUM)
|
||||
|
||||
################################################################################
|
||||
|
|
|
@ -12,23 +12,23 @@ macro(install_debinfo
|
|||
if (TLEN EQUAL 0)
|
||||
message(FATAL_ERROR "empty target specified for creating debug file")
|
||||
endif()
|
||||
|
||||
|
||||
set(SUB_DEBINFO_DIR ${USER_SUB_DEBINFO_DIR})
|
||||
set(FILE ${USER_OUTPUT_DIRECTORY}/${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 remove ${STRIP_FILE})
|
||||
|
||||
|
||||
execute_process(
|
||||
COMMAND ${FILE_EXECUTABLE} ${FILE}
|
||||
OUTPUT_VARIABLE FILE_RESULT)
|
||||
|
||||
COMMAND ${READELF_EXECUTABLE} -n ${FILE}
|
||||
OUTPUT_VARIABLE READELF_RESULT)
|
||||
|
||||
string(REGEX
|
||||
REPLACE ".*=([a-z0-9]*),.*" "\\1"
|
||||
REPLACE ".*ID: *([a-f0-9]*).*" "\\1"
|
||||
FILE_CHECKSUM
|
||||
${FILE_RESULT}
|
||||
"${READELF_RESULT}"
|
||||
)
|
||||
string(LENGTH ${FILE_CHECKSUM} FILE_CHECKSUM_LEN)
|
||||
|
||||
|
@ -51,17 +51,17 @@ endmacro()
|
|||
# Detect whether this system has SHA checksums
|
||||
macro(detect_binary_id_type sourceVar)
|
||||
set(${sourceVar} false)
|
||||
if (NOT MSVC AND CMAKE_STRIP AND FILE_EXECUTABLE)
|
||||
if (NOT MSVC AND CMAKE_STRIP AND READELF_EXECUTABLE)
|
||||
execute_process(
|
||||
COMMAND ${FILE_EXECUTABLE} ${FILE_EXECUTABLE}
|
||||
OUTPUT_VARIABLE FILE_RESULT)
|
||||
|
||||
COMMAND ${READELF_EXECUTABLE} -n ${READELF_EXECUTABLE}
|
||||
OUTPUT_VARIABLE READELF_RESULT)
|
||||
|
||||
string(REGEX
|
||||
REPLACE ".*=([a-z0-9]*),.*" "\\1"
|
||||
REPLACE ".*ID: *([a-f0-9]*).*" "\\1"
|
||||
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)
|
||||
set(${sourceVar} true)
|
||||
endif()
|
||||
|
@ -73,7 +73,7 @@ macro(strip_install_bin_and_config
|
|||
INTERMEDIATE_STRIP_DIR
|
||||
TARGET_DIR
|
||||
BIND_TARGET)
|
||||
|
||||
|
||||
string(LENGTH "${TARGET}" TLEN)
|
||||
if (TLEN EQUAL 0)
|
||||
message(FATAL_ERROR "empty target specified for creating stripped file")
|
||||
|
@ -85,10 +85,10 @@ macro(strip_install_bin_and_config
|
|||
ExternalProject_Add("${TARGET_NAME}"
|
||||
DEPENDS ${BIND_TARGET}
|
||||
SOURCE_DIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY_X}
|
||||
|
||||
|
||||
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E make_directory ${INTERMEDIATE_STRIP_DIR}
|
||||
COMMENT "creating strip directory"
|
||||
|
||||
|
||||
BUILD_COMMAND ${CMAKE_STRIP} ${FILE} -o ${STRIP_FILE}
|
||||
COMMENT "stripping binary"
|
||||
INSTALL_COMMAND ""
|
||||
|
|
|
@ -33,7 +33,7 @@ set(CMAKE_INSTALL_DEBINFO_DIR @CMAKE_INSTALL_DEBINFO_DIR@)
|
|||
|
||||
set(CMAKE_OBJCOPY @CMAKE_OBJCOPY@)
|
||||
|
||||
set(FILE_EXECUTABLE @FILE_EXECUTABLE@)
|
||||
set(READELF_EXECUTABLE @READELF_EXECUTABLE@)
|
||||
|
||||
set(INSTALL_CONFIGFILES_LIST)
|
||||
set(PACKAGING_HANDLE_CONFIG_FILES false)
|
||||
|
|
Loading…
Reference in New Issue