From 320c282488f4ae4cae735b0be027170803d06cd7 Mon Sep 17 00:00:00 2001 From: Li Xinwei <1326710505@qq.com> Date: Wed, 12 May 2021 20:03:57 +0800 Subject: CMake: add an option to enable or disable versioned hard link The option is called QT_CREATE_VERSIONED_HARD_LINK. By default, it is set to ON. Users can set this option to OFF to disable versioned hard link. Pick-to: 6.1 Fixes: QTBUG-93636 Change-Id: I0ffa1ee1c6bae1950df332fcce3152a861b33db0 Reviewed-by: Alexandru Croitor --- CMakeLists.txt | 3 +++ cmake/QtBuildInternalsExtra.cmake.in | 4 ++++ cmake/QtInstallHelpers.cmake | 4 ++++ 3 files changed, 11 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 76c08084d3..45110a429b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -81,6 +81,9 @@ if(NOT QT_BUILD_STANDALONE_TESTS) ## Should this Qt be built with Werror? option(WARNINGS_ARE_ERRORS "Build Qt with warnings as errors" ${FEATURE_developer_build}) + ## Should this Qt create versioned hard link for some tools? + option(QT_CREATE_VERSIONED_HARD_LINK "Enable the use of versioned hard link" ON) + ## QtBase specific configure tests: include(QtBaseConfigureTests) diff --git a/cmake/QtBuildInternalsExtra.cmake.in b/cmake/QtBuildInternalsExtra.cmake.in index d623835144..b089f00fd6 100644 --- a/cmake/QtBuildInternalsExtra.cmake.in +++ b/cmake/QtBuildInternalsExtra.cmake.in @@ -65,5 +65,9 @@ set(QT_BUILD_EXAMPLES_BY_DEFAULT @QT_BUILD_EXAMPLES_BY_DEFAULT@ CACHE BOOL # Propagate usage of ccache. set(QT_USE_CCACHE @QT_USE_CCACHE@ CACHE BOOL "Enable the use of ccache") +# Propagate usage of versioned hard link. +set(QT_CREATE_VERSIONED_HARD_LINK "@QT_CREATE_VERSIONED_HARD_LINK@" CACHE BOOL + "Enable the use of versioned hard link") + # Extra set of exported variables @QT_EXTRA_BUILD_INTERNALS_VARS@ diff --git a/cmake/QtInstallHelpers.cmake b/cmake/QtInstallHelpers.cmake index 30962b84e2..9dbb22251d 100644 --- a/cmake/QtInstallHelpers.cmake +++ b/cmake/QtInstallHelpers.cmake @@ -136,6 +136,10 @@ function(qt_internal_install_versioned_link install_dir target) return() endif() + if(NOT QT_CREATE_VERSIONED_HARD_LINK) + return() + endif() + qt_path_join(install_base_file_path "$\{qt_full_install_prefix}" "${install_dir}" "$") set(original "${install_base_file_path}$") -- cgit v1.2.3