summaryrefslogtreecommitdiffstats
path: root/cmake/qt.toolchain.cmake.in
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/qt.toolchain.cmake.in')
-rw-r--r--cmake/qt.toolchain.cmake.in31
1 files changed, 31 insertions, 0 deletions
diff --git a/cmake/qt.toolchain.cmake.in b/cmake/qt.toolchain.cmake.in
index e97e46879d..cdd2813f8b 100644
--- a/cmake/qt.toolchain.cmake.in
+++ b/cmake/qt.toolchain.cmake.in
@@ -1,3 +1,24 @@
+set(__qt_toolchain_used_variables
+ QT_CHAINLOAD_TOOLCHAIN_FILE
+ QT_TOOLCHAIN_INCLUDE_FILE
+ QT_TOOLCHAIN_RELOCATABLE_CMAKE_DIR
+ QT_TOOLCHAIN_RELOCATABLE_PREFIX)
+@init_additional_used_variables@
+
+# Make cache variables used by this toolchain file available to the
+# try_compile command that operates on sources files.
+list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES ${__qt_toolchain_used_variables})
+list(REMOVE_DUPLICATES CMAKE_TRY_COMPILE_PLATFORM_VARIABLES)
+
+# Turn the environment variables that are created at the end of this
+# file into proper variables. This is needed for try_compile calls
+# that operate on whole projects.
+if($ENV{_QT_TOOLCHAIN_VARS_INITIALIZED})
+ foreach(var ${__qt_toolchain_used_variables})
+ set(${var} "$ENV{_QT_TOOLCHAIN_${var}}")
+ endforeach()
+endif()
+
@init_qt_host_path@
@init_qt_host_path_cmake_dir@
@init_original_toolchain_file@
@@ -64,3 +85,13 @@ if(QT_TOOLCHAIN_INCLUDE_FILE)
"${__qt_toolchain_include_file_real_path}")
endif()
endif()
+
+# Compile tests only see a restricted set of variables.
+# All cache variables, this toolchain file uses, must be made available to compile tests,
+# because this toolchain file will be included there too.
+if(NOT ENV{_QT_TOOLCHAIN_VARS_INITIALIZED})
+ set(ENV{_QT_TOOLCHAIN_VARS_INITIALIZED} ON)
+ foreach(var ${__qt_toolchain_used_variables})
+ set(ENV{_QT_TOOLCHAIN_${var}} "${${var}}")
+ endforeach()
+endif()