summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake')
-rw-r--r--cmake/QtInstallHelpers.cmake20
1 files changed, 16 insertions, 4 deletions
diff --git a/cmake/QtInstallHelpers.cmake b/cmake/QtInstallHelpers.cmake
index 1f1fb84634..30962b84e2 100644
--- a/cmake/QtInstallHelpers.cmake
+++ b/cmake/QtInstallHelpers.cmake
@@ -136,13 +136,25 @@ function(qt_internal_install_versioned_link install_dir target)
return()
endif()
- qt_path_join(install_base_file_path "$ENV\{DESTDIR}$\{CMAKE_INSTALL_PREFIX}"
+ qt_path_join(install_base_file_path "$\{qt_full_install_prefix}"
"${install_dir}" "$<TARGET_FILE_BASE_NAME:${target}>")
set(original "${install_base_file_path}$<TARGET_FILE_SUFFIX:${target}>")
set(linkname "${install_base_file_path}${PROJECT_VERSION_MAJOR}$<TARGET_FILE_SUFFIX:${target}>")
- set(code
- "message(STATUS \"Creating hard link ${original} -> ${linkname}\")"
- "file(CREATE_LINK \"${original}\" \"${linkname}\" COPY_ON_ERROR)")
+ set(code "set(qt_full_install_prefix \"$\{CMAKE_INSTALL_PREFIX}\")"
+ " if(NOT \"$ENV\{DESTDIR}\" STREQUAL \"\")"
+ )
+ if(CMAKE_HOST_WIN32)
+ list(APPEND code
+ " if(qt_full_install_prefix MATCHES \"^[a-zA-Z]:\")"
+ " string(SUBSTRING \"$\{qt_full_install_prefix}\" 2 -1 qt_full_install_prefix)"
+ " endif()"
+ )
+ endif()
+ list(APPEND code
+ " string(PREPEND qt_full_install_prefix \"$ENV\{DESTDIR}\")"
+ " endif()"
+ " message(STATUS \"Creating hard link ${original} -> ${linkname}\")"
+ " file(CREATE_LINK \"${original}\" \"${linkname}\" COPY_ON_ERROR)")
if(QT_GENERATOR_IS_MULTI_CONFIG)
# Wrap the code in a configuration check,