diff options
author | Kai Köhne <kai.koehne@qt.io> | 2021-02-24 16:07:37 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-03-30 18:47:55 +0000 |
commit | f7af2325f541d68e87f2f1cbd1fc44264f4130a2 (patch) | |
tree | 0f36650dcf9f6f40e2b02946560b29cf15e67330 | |
parent | 474ec0ac9a27b90d68b1085b1e684ff41d4623ad (diff) |
Improve support for QT_ADDITIONAL_PACKAGES_PREFIX_PATH
Allow to set QT_ADDITIONAL_PACKAGES_PREFIX_PATH as both an env
variable and CMake cache variable. Also normalize path and list
separators, so that they can be used similar to CMAKE_PREFIX_PATH.
The environment variable is intended to be set by the conan virtualenv
generator, so that e.g.
find_package(Qt6 COMPONENTS NetworkAuth REQUIRED)
also works if NetworkAuth is not installed into the Qt prefix.
Fixes: QTBUG-91142
Change-Id: Ia9f9b9fa2b1b051d33073629139640d0f4c7a843
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Craig Scott <craig.scott@qt.io>
(cherry picked from commit 5bbd700124d13a292ff8bae6045316112500e230)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | cmake/QtConfig.cmake.in | 7 | ||||
-rw-r--r-- | cmake/QtModuleDependencies.cmake.in | 6 | ||||
-rw-r--r-- | cmake/QtPluginDependencies.cmake.in | 3 |
3 files changed, 12 insertions, 4 deletions
diff --git a/cmake/QtConfig.cmake.in b/cmake/QtConfig.cmake.in index 57c252091d..00121013b2 100644 --- a/cmake/QtConfig.cmake.in +++ b/cmake/QtConfig.cmake.in @@ -46,6 +46,10 @@ if(APPLE AND (NOT CMAKE_SYSTEM_NAME OR CMAKE_SYSTEM_NAME STREQUAL "Darwin")) list(APPEND CMAKE_MODULE_PATH "${_qt_import_prefix}/macos") endif() +set(QT_ADDITIONAL_PACKAGES_PREFIX_PATH "" CACHE STRING "Additional directories where find(Qt6 ...) components are searched") +file(TO_CMAKE_PATH "${QT_ADDITIONAL_PACKAGES_PREFIX_PATH}" _qt_additional_packages_prefix_path) +file(TO_CMAKE_PATH "$ENV{QT_ADDITIONAL_PACKAGES_PREFIX_PATH}" _qt_additional_packages_prefix_path_env) + # Find required dependencies, if any. include(CMakeFindDependencyMacro) if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/@INSTALL_CMAKE_NAMESPACE@Dependencies.cmake") @@ -68,7 +72,8 @@ foreach(module ${@INSTALL_CMAKE_NAMESPACE@_FIND_COMPONENTS}) ${_@INSTALL_CMAKE_NAMESPACE@_FIND_PARTS_REQUIRED} PATHS ${_qt_cmake_dir} - ${QT_ADDITIONAL_PACKAGES_PREFIX_PATH} + ${_qt_additional_packages_prefix_path} + ${_qt_additional_packages_prefix_path_env} ${QT_EXAMPLES_CMAKE_PREFIX_PATH} ${__qt_use_no_default_path_for_qt_packages} ) diff --git a/cmake/QtModuleDependencies.cmake.in b/cmake/QtModuleDependencies.cmake.in index 8f7960059a..f9a5897676 100644 --- a/cmake/QtModuleDependencies.cmake.in +++ b/cmake/QtModuleDependencies.cmake.in @@ -8,7 +8,8 @@ endif() find_dependency(@INSTALL_CMAKE_NAMESPACE@ @PROJECT_VERSION@ PATHS "${CMAKE_CURRENT_LIST_DIR}/.." - ${QT_ADDITIONAL_PACKAGES_PREFIX_PATH} + ${_qt_additional_packages_prefix_path} + ${_qt_additional_packages_prefix_path_env} ${QT_EXAMPLES_CMAKE_PREFIX_PATH} ${__qt_use_no_default_path_for_qt_packages} ) @@ -86,7 +87,8 @@ foreach(_target_dep ${_target_deps}) find_dependency(${pkg} ${version} PATHS "${CMAKE_CURRENT_LIST_DIR}/.." - ${QT_ADDITIONAL_PACKAGES_PREFIX_PATH} + ${_qt_additional_packages_prefix_path} + ${_qt_additional_packages_prefix_path_env} ${QT_EXAMPLES_CMAKE_PREFIX_PATH} ${__qt_use_no_default_path_for_qt_packages} ) diff --git a/cmake/QtPluginDependencies.cmake.in b/cmake/QtPluginDependencies.cmake.in index 42365b4296..7bd1eef9aa 100644 --- a/cmake/QtPluginDependencies.cmake.in +++ b/cmake/QtPluginDependencies.cmake.in @@ -42,7 +42,8 @@ foreach(_target_dep ${_target_deps}) find_dependency(${pkg} ${version} PATHS @find_dependency_paths@ - ${QT_ADDITIONAL_PACKAGES_PREFIX_PATH} + ${_qt_additional_packages_prefix_path} + ${_qt_additional_packages_prefix_path_env} ${QT_EXAMPLES_CMAKE_PREFIX_PATH} ${__qt_use_no_default_path_for_qt_packages} ) |