CMake: Fix QT_STAGING_PREFIX for repos other than qtbase
For repositories other than qtbase the QT_STAGING_PREFIX was empty, because it was only determined in qtbase. Also, we save the CMAKE_STAGING_PREFIX in the Qt6BuildInternals package and set this variable if it's not explicitly set by the user. As with CMAKE_INSTALL_PREFIX this behavior can be prevented by defining QT_BUILD_INTERNALS_NO_FORCE_SET_STAGING_PREFIX=ON. Change-Id: I73100abbef24f5d3fb8f82029d0374176edc8048 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
parent
004d3fab49
commit
ce9efcf4a9
@ -125,6 +125,12 @@ qt_configure_process_path(INSTALL_DESCRIPTIONSDIR
|
||||
"${INSTALL_DATADIR}/modules"
|
||||
"Module description files directory")
|
||||
|
||||
if(CMAKE_CROSSCOMPILING AND NOT "${CMAKE_STAGING_PREFIX}" STREQUAL "")
|
||||
set(QT_STAGING_PREFIX "${CMAKE_STAGING_PREFIX}")
|
||||
else()
|
||||
set(QT_STAGING_PREFIX "${CMAKE_INSTALL_PREFIX}")
|
||||
endif()
|
||||
|
||||
function(qt_internal_set_up_global_paths)
|
||||
# Compute the values of QT_BUILD_DIR, QT_INSTALL_DIR, QT_CONFIG_BUILD_DIR, QT_CONFIG_INSTALL_DIR
|
||||
# taking into account whether the current build is a prefix build or a non-prefix build,
|
||||
|
@ -459,6 +459,18 @@ endif()\n")
|
||||
"set(OPENSSL_ROOT_DIR \"${openssl_root_cmake_path}\" CACHE STRING \"\")\n")
|
||||
endif()
|
||||
|
||||
if(NOT "${CMAKE_STAGING_PREFIX}" STREQUAL "")
|
||||
string(APPEND QT_EXTRA_BUILD_INTERNALS_VARS
|
||||
"
|
||||
# If no explicit CMAKE_STAGING_PREFIX is provided, force set the original Qt staging prefix,
|
||||
if(\"$\{CMAKE_STAGING_PREFIX}\" STREQUAL \"\"
|
||||
AND NOT QT_BUILD_INTERNALS_NO_FORCE_SET_STAGING_PREFIX)
|
||||
set(CMAKE_STAGING_PREFIX \"${CMAKE_STAGING_PREFIX}\" CACHE PATH
|
||||
\"Staging path prefix, prepended onto install directories on the host machine.\" FORCE)
|
||||
endif()
|
||||
")
|
||||
endif()
|
||||
|
||||
qt_generate_install_prefixes(install_prefix_content)
|
||||
|
||||
string(APPEND QT_EXTRA_BUILD_INTERNALS_VARS "${install_prefix_content}")
|
||||
|
@ -87,8 +87,6 @@ if (PROJECT_NAME STREQUAL "QtBase" AND NOT QT_BUILD_STANDALONE_TESTS)
|
||||
else()
|
||||
set(__qt_will_install_value ON)
|
||||
endif()
|
||||
set(QT_STAGING_PREFIX "${__qt_prefix}" CACHE INTERNAL
|
||||
"Install prefix on the build machine. Either CMAKE_INSTALL_PREFIX or CMAKE_STAGING_PREFIX.")
|
||||
set(QT_WILL_INSTALL ${__qt_will_install_value} CACHE BOOL
|
||||
"Boolean indicating if doing a Qt prefix build (vs non-prefix build)." FORCE)
|
||||
unset(__qt_prefix)
|
||||
|
Loading…
Reference in New Issue
Block a user