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 <alexandru.croitor@qt.io>
This commit is contained in:
Li Xinwei 2021-05-12 20:03:57 +08:00
parent 6e04664a95
commit 320c282488
3 changed files with 11 additions and 0 deletions

View File

@ -81,6 +81,9 @@ if(NOT QT_BUILD_STANDALONE_TESTS)
## Should this Qt be built with Werror? ## Should this Qt be built with Werror?
option(WARNINGS_ARE_ERRORS "Build Qt with warnings as errors" ${FEATURE_developer_build}) 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: ## QtBase specific configure tests:
include(QtBaseConfigureTests) include(QtBaseConfigureTests)

View File

@ -65,5 +65,9 @@ set(QT_BUILD_EXAMPLES_BY_DEFAULT @QT_BUILD_EXAMPLES_BY_DEFAULT@ CACHE BOOL
# Propagate usage of ccache. # Propagate usage of ccache.
set(QT_USE_CCACHE @QT_USE_CCACHE@ CACHE BOOL "Enable the use 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 # Extra set of exported variables
@QT_EXTRA_BUILD_INTERNALS_VARS@ @QT_EXTRA_BUILD_INTERNALS_VARS@

View File

@ -136,6 +136,10 @@ function(qt_internal_install_versioned_link install_dir target)
return() return()
endif() endif()
if(NOT QT_CREATE_VERSIONED_HARD_LINK)
return()
endif()
qt_path_join(install_base_file_path "$\{qt_full_install_prefix}" qt_path_join(install_base_file_path "$\{qt_full_install_prefix}"
"${install_dir}" "$<TARGET_FILE_BASE_NAME:${target}>") "${install_dir}" "$<TARGET_FILE_BASE_NAME:${target}>")
set(original "${install_base_file_path}$<TARGET_FILE_SUFFIX:${target}>") set(original "${install_base_file_path}$<TARGET_FILE_SUFFIX:${target}>")