diff options
author | Joerg Bornemann <joerg.bornemann@qt.io> | 2022-02-22 14:14:26 +0100 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@qt.io> | 2022-02-23 17:06:20 +0100 |
commit | 71d011d35ace2948edf07b0c475100681ea075fd (patch) | |
tree | 9b0ff4b5d45521d5e3f79dc9450b8c9536cb9f52 | |
parent | 56abd7e4e0ac4a382df01575446138809d031da5 (diff) |
Fix QT_ADDITIONAL_(HOST_)PACKAGES_PREFIX_PATH environment variables
Except on Windows, the values in CMake environment variables that
contain path lists are separated by colons, not semicolons. See
documentation of CMAKE_PREFIX_PATH.
This is necessary for conan's virtualenv generator which sets these
environment variables with native list separators.
This amends commit e044c94a61f0cd2bdea1e89be4ec3c68007f7a5c.
Pick-to: 6.2 6.3
Task-number: QTBUG-94524
Change-Id: I7f3d140a8462347b181f1d9601fd11cc1ba449db
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
-rw-r--r-- | cmake/QtConfig.cmake.in | 6 | ||||
-rw-r--r-- | cmake/qt.toolchain.cmake.in | 8 |
2 files changed, 12 insertions, 2 deletions
diff --git a/cmake/QtConfig.cmake.in b/cmake/QtConfig.cmake.in index 1d32c94e3d..8ad4e45822 100644 --- a/cmake/QtConfig.cmake.in +++ b/cmake/QtConfig.cmake.in @@ -69,7 +69,11 @@ function(__qt_internal_collect_additional_prefix_paths out_var prefixes_var) endif() if(DEFINED ENV{${prefixes_var}} AND NOT "$ENV{${prefixes_var}}" STREQUAL "") - list(APPEND additional_packages_prefixes $ENV{${prefixes_var}}) + set(prefixes_from_env "$ENV{${prefixes_var}}") + if(NOT CMAKE_HOST_WIN32) + string(REPLACE ":" ";" prefixes_from_env "${prefixes_from_env}") + endif() + list(APPEND additional_packages_prefixes ${prefixes_from_env}) endif() foreach(additional_path IN LISTS additional_packages_prefixes) diff --git a/cmake/qt.toolchain.cmake.in b/cmake/qt.toolchain.cmake.in index 1770969dbf..193e4ba873 100644 --- a/cmake/qt.toolchain.cmake.in +++ b/cmake/qt.toolchain.cmake.in @@ -96,8 +96,14 @@ if(QT_ADDITIONAL_PACKAGES_PREFIX_PATH) endif() if(DEFINED ENV{QT_ADDITIONAL_PACKAGES_PREFIX_PATH} AND NOT "$ENV{QT_ADDITIONAL_PACKAGES_PREFIX_PATH}" STREQUAL "") + set(__qt_env_additional_packages_prefixes $ENV{QT_ADDITIONAL_PACKAGES_PREFIX_PATH}) + if(NOT CMAKE_HOST_WIN32) + string(REPLACE ":" ";" __qt_env_additional_packages_prefixes + "${__qt_env_additional_packages_prefixes}") + endif() list(APPEND __qt_toolchain_additional_packages_prefixes - $ENV{QT_ADDITIONAL_PACKAGES_PREFIX_PATH}) + ${__qt_env_additional_packages_prefixes}) + unset(__qt_env_additional_packages_prefixes) endif() if(__qt_toolchain_additional_packages_prefixes) |