Avoid relying on external tool for working around CMake's broken `REALPATH`
This commit is contained in:
parent
c2bd68824c
commit
0e151b3cc6
|
@ -595,15 +595,19 @@ if (REQUIRED_ICONS)
|
|||
"${ICON_THEME_FILE_RELATIVE_PATH}")
|
||||
set(ICON_THEME_FILE_ALIAS " alias=\"${NEW_ICON_THEME_FILE_RELATIVE_PATH}\"")
|
||||
if (CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
|
||||
find_program(REALPATH_BIN "realpath")
|
||||
if (NOT REALPATH_BIN)
|
||||
message(FATAL_ERROR "Set REALPATH_BIN to the location of realpath.exe to workaround https://gitlab.kitware.com/cmake/cmake/-/issues/17206")
|
||||
if (CMAKE_VERSION VERSION_LESS "3.14")
|
||||
message(FATAL_ERROR "Need at least CMake 3.14 on Windows to read symlinks of"
|
||||
"icon theme to be bundled.")
|
||||
endif ()
|
||||
execute_process(COMMAND "${REALPATH_PATH}" "${ICON_THEME_FILE}" OUTPUT_VARIABLE ICON_THEME_FILE OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ERROR_IS_FATAL ANY)
|
||||
string(REGEX REPLACE "\n$" "" ICON_THEME_FILE "${ICON_THEME_FILE}")
|
||||
else ()
|
||||
get_filename_component(ICON_THEME_FILE "${ICON_THEME_FILE}" REALPATH)
|
||||
while (IS_SYMLINK "${ICON_THEME_FILE}")
|
||||
get_filename_component(ICON_THEME_FILE_DIR "${ICON_THEME_FILE}" DIRECTORY)
|
||||
file(READ_SYMLINK "${ICON_THEME_FILE}" ICON_THEME_FILE)
|
||||
if(NOT IS_ABSOLUTE "${ICON_THEME_FILE}")
|
||||
set(ICON_THEME_FILE "${ICON_THEME_FILE_DIR}/${ICON_THEME_FILE}")
|
||||
endif()
|
||||
endwhile ()
|
||||
endif ()
|
||||
get_filename_component(ICON_THEME_FILE "${ICON_THEME_FILE}" REALPATH)
|
||||
else ()
|
||||
unset(ICON_THEME_FILE_ALIAS)
|
||||
endif ()
|
||||
|
|
Loading…
Reference in New Issue