diff --git a/cmake/modules/QtConfig.cmake b/cmake/modules/QtConfig.cmake index 1090e92..78ac472 100644 --- a/cmake/modules/QtConfig.cmake +++ b/cmake/modules/QtConfig.cmake @@ -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 ()