diff options
author | Brad King <brad.king@kitware.com> | 2021-06-03 12:32:44 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2021-06-03 12:32:44 (GMT) |
commit | 6c34ed9b879906d1eaadad80f37f518829017789 (patch) | |
tree | 45043b460fae481ff6592a7fc016e1b893431bc7 /Tests/RunCMake/CommandLine/RunCMakeTest.cmake | |
parent | 9c33ff4dda643f8a93d55f9895e31dce9056134f (diff) | |
download | CMake-6c34ed9b879906d1eaadad80f37f518829017789.zip CMake-6c34ed9b879906d1eaadad80f37f518829017789.tar.gz CMake-6c34ed9b879906d1eaadad80f37f518829017789.tar.bz2 |
cmake: Allow CMAKE_TOOLCHAIN_FILE to be set by environment variable
When no `CMAKE_TOOLCHAIN_FILE` is explicitly specified while creating
a new build tree, check for an environment variable of the same name.
Diffstat (limited to 'Tests/RunCMake/CommandLine/RunCMakeTest.cmake')
-rw-r--r-- | Tests/RunCMake/CommandLine/RunCMakeTest.cmake | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake index 2eb8784..c4d3e4a 100644 --- a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake +++ b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake @@ -344,6 +344,33 @@ if(RunCMake_GENERATOR MATCHES "Unix Makefiles" OR RunCMake_GENERATOR MATCHES "Ni run_EnvironmentExportCompileCommands() endif() +function(run_EnvironmentToolchain) + set(ENV{CMAKE_TOOLCHAIN_FILE} "${RunCMake_SOURCE_DIR}/EnvToolchain-toolchain.cmake") + run_cmake(EnvToolchainAbsolute) + run_cmake_with_options(EnvToolchainIgnore -DCMAKE_TOOLCHAIN_FILE=) + unset(ENV{CMAKE_TOOLCHAIN_FILE}) + + set(ENV{CMAKE_TOOLCHAIN_FILE} "EnvToolchain-toolchain.cmake") + set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/EnvToolchainRelative-build) + set(RunCMake_TEST_NO_CLEAN 1) + file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}") + file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}") + configure_file("${RunCMake_SOURCE_DIR}/EnvToolchain-toolchain.cmake" "${RunCMake_TEST_BINARY_DIR}/EnvToolchain-toolchain.cmake" COPYONLY) + run_cmake(EnvToolchainRelative) + unset(ENV{CMAKE_TOOLCHAIN_FILE}) + unset(RunCMake_TEST_NO_CLEAN) + + set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/EnvToolchainNone-build) + run_cmake(EnvToolchainNone) + set(RunCMake_TEST_NO_CLEAN 1) + file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}/CMakeFiles") + set(ENV{CMAKE_TOOLCHAIN_FILE} "${RunCMake_SOURCE_DIR}/EnvToolchain-toolchain.cmake") + run_cmake_command(EnvToolchainNoneExisting ${CMAKE_COMMAND} .) + unset(ENV{CMAKE_TOOLCHAIN_FILE}) + unset(RunCMake_TEST_NO_CLEAN) +endfunction() +run_EnvironmentToolchain() + if(RunCMake_GENERATOR STREQUAL "Ninja") # Use a single build tree for a few tests without cleaning. set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/Build-build) |