summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/CrosscompilingEmulator
diff options
context:
space:
mode:
authorMatt McCormick <matt.mccormick@kitware.com>2023-06-06 12:43:39 (GMT)
committerBrad King <brad.king@kitware.com>2023-06-13 17:58:44 (GMT)
commit7005dea00589143e2d91d863a7d419385a0babf4 (patch)
treec001d4f8513fa2c0d5857f5021f7b802f92173c4 /Tests/RunCMake/CrosscompilingEmulator
parentccb866448f03a4cf5601f271fc0030eef288acd3 (diff)
downloadCMake-7005dea00589143e2d91d863a7d419385a0babf4.zip
CMake-7005dea00589143e2d91d863a7d419385a0babf4.tar.gz
CMake-7005dea00589143e2d91d863a7d419385a0babf4.tar.bz2
CrossCompiling: Load CMAKE_CROSSCOMPILING_EMULATOR from environment
Read `CMAKE_CROSSCOMPILING_EMULATOR` from an environment variable of the same name if not specified with `-D` or an initial cache value. Along with existing environment variable settings such as `CMAKE_TOOLCHAIN_FILE`, cross compilation configuration can be more completely set via environment variables. Suggested-by: Henry Schreiner <henryschreineriii@gmail.com>
Diffstat (limited to 'Tests/RunCMake/CrosscompilingEmulator')
-rw-r--r--Tests/RunCMake/CrosscompilingEmulator/EnvCrossCompilingEmulator-stdout.txt2
-rw-r--r--Tests/RunCMake/CrosscompilingEmulator/EnvCrossCompilingEmulator.cmake6
-rw-r--r--Tests/RunCMake/CrosscompilingEmulator/RunCMakeTest.cmake8
3 files changed, 16 insertions, 0 deletions
diff --git a/Tests/RunCMake/CrosscompilingEmulator/EnvCrossCompilingEmulator-stdout.txt b/Tests/RunCMake/CrosscompilingEmulator/EnvCrossCompilingEmulator-stdout.txt
new file mode 100644
index 0000000..9a7d746
--- /dev/null
+++ b/Tests/RunCMake/CrosscompilingEmulator/EnvCrossCompilingEmulator-stdout.txt
@@ -0,0 +1,2 @@
+-- env_emulator='pseudo_emulator(\.exe)?'
+-- emulator='pseudo_emulator(\.exe)?'
diff --git a/Tests/RunCMake/CrosscompilingEmulator/EnvCrossCompilingEmulator.cmake b/Tests/RunCMake/CrosscompilingEmulator/EnvCrossCompilingEmulator.cmake
new file mode 100644
index 0000000..55fc483
--- /dev/null
+++ b/Tests/RunCMake/CrosscompilingEmulator/EnvCrossCompilingEmulator.cmake
@@ -0,0 +1,6 @@
+message(STATUS "ENV{CMAKE_CROSS_COMPILING_EMULATOR}='$ENV{CMAKE_CROSSCOMPILING_EMULATOR}'")
+message(STATUS "CMAKE_CROSSCOMPLING_EMULATOR='${CMAKE_CROSSCOMPILING_EMULATOR}'")
+get_filename_component(env_emulator "$ENV{CMAKE_CROSSCOMPILING_EMULATOR}" NAME)
+message(STATUS "env_emulator='${env_emulator}'")
+get_filename_component(emulator "${CMAKE_CROSSCOMPILING_EMULATOR}" NAME)
+message(STATUS "emulator='${emulator}'")
diff --git a/Tests/RunCMake/CrosscompilingEmulator/RunCMakeTest.cmake b/Tests/RunCMake/CrosscompilingEmulator/RunCMakeTest.cmake
index 97b7b5a..1ffd91c 100644
--- a/Tests/RunCMake/CrosscompilingEmulator/RunCMakeTest.cmake
+++ b/Tests/RunCMake/CrosscompilingEmulator/RunCMakeTest.cmake
@@ -26,3 +26,11 @@ set(RunCMake_TEST_OPTIONS
"-DCMAKE_CROSSCOMPILING_EMULATOR=${PSEUDO_EMULATOR_CUSTOM_COMMAND_ARG}\;custom_argument")
CustomCommandGenerator_run_and_build(AddCustomCommandWithArg)
CustomCommandGenerator_run_and_build(AddCustomTargetWithArg)
+unset(RunCMake_TEST_OPTIONS)
+
+function(run_EnvCrossCompilingEmulator)
+ set(ENV{CMAKE_CROSSCOMPILING_EMULATOR} "${PSEUDO_EMULATOR}")
+ run_cmake(EnvCrossCompilingEmulator)
+ unset(ENV{CMAKE_CROSSCOMPILING_EMULATOR})
+endfunction()
+run_EnvCrossCompilingEmulator()