From fd14d3c5021f8af69423b110ea172875956979be Mon Sep 17 00:00:00 2001 From: Martchus Date: Thu, 23 Mar 2023 21:10:05 +0100 Subject: [PATCH] Workaround CMake being unable to override symlink on Windows The documentation says "If already exists, it will be overwritten.". This seems to be the case on GNU/Linux but on Windows with CMake 3.24.2 (as provided by the official Qt installer) I've nevertheless got an error. --- qtforkawesome/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/qtforkawesome/CMakeLists.txt b/qtforkawesome/CMakeLists.txt index 4b5eb1c..b3fe2ed 100644 --- a/qtforkawesome/CMakeLists.txt +++ b/qtforkawesome/CMakeLists.txt @@ -52,6 +52,10 @@ set(META_CUSTOM_CONFIG set(RES_FILE_PATH "${CMAKE_CURRENT_BINARY_DIR}/${META_PROJECT_NAME}_font.qrc") set(RES_FILE_DATA "${META_FONT_FILE_NAME}") if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.14") + if (CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows" AND EXISTS "${CMAKE_CURRENT_BINARY_DIR}/${META_FONT_FILE_NAME}") + # avoid running into error when symlink already exists (should not be necassary according to docs) + file(REMOVE "${CMAKE_CURRENT_BINARY_DIR}/${META_FONT_FILE_NAME}") + endif () file(CREATE_LINK "${FORK_AWESOME_FONT_FILE}" "${CMAKE_CURRENT_BINARY_DIR}/${META_FONT_FILE_NAME}" SYMBOLIC) else () file(COPY "${FORK_AWESOME_FONT_FILE}" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")