diff options
author | Brad King <brad.king@kitware.com> | 2016-05-24 19:33:34 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2016-05-25 13:36:19 (GMT) |
commit | d256ba078a10001883487ed6af746af5b9cd9608 (patch) | |
tree | 094283876832165e43db22f3e5bff7205b01d761 /Tests | |
parent | fb4791b37ccea1f38b8625b31df952408ab942f3 (diff) | |
download | CMake-d256ba078a10001883487ed6af746af5b9cd9608.zip CMake-d256ba078a10001883487ed6af746af5b9cd9608.tar.gz CMake-d256ba078a10001883487ed6af746af5b9cd9608.tar.bz2 |
try_compile: Optionally forward custom platform variables to test project
Add a `CMAKE_TRY_COMPILE_PLATFORM_VARIABLES` variable to specify a list
of custom variables to be forwarded to a `try_compile` test project.
This will be useful for platform information modules or toolchain files
to forward some platform-specific set of variables from the host project
(perhaps set in its cache) to the test project so that it can build the
same way.
Diffstat (limited to 'Tests')
-rw-r--r-- | Tests/RunCMake/try_compile/PlatformVariables.cmake | 23 | ||||
-rw-r--r-- | Tests/RunCMake/try_compile/RunCMakeTest.cmake | 4 |
2 files changed, 27 insertions, 0 deletions
diff --git a/Tests/RunCMake/try_compile/PlatformVariables.cmake b/Tests/RunCMake/try_compile/PlatformVariables.cmake new file mode 100644 index 0000000..54da645 --- /dev/null +++ b/Tests/RunCMake/try_compile/PlatformVariables.cmake @@ -0,0 +1,23 @@ +enable_language(C) + +# Normally this variable should be set by a platform information module or +# a toolchain file, but for purposes of this test we simply set it here. +set(CMAKE_TRY_COMPILE_PLATFORM_VARIABLES MY_CUSTOM_VARIABLE) + +set(MY_CUSTOM_VARIABLE SOME_VALUE) + +try_compile(result ${CMAKE_CURRENT_BINARY_DIR} + SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src.c + OUTPUT_VARIABLE out + ) +if(NOT result) + message(FATAL_ERROR "try_compile failed:\n${out}") +endif() + +# Check that the cache was populated with our custom variable. +file(STRINGS ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeTmp/CMakeCache.txt entries + REGEX MY_CUSTOM_VARIABLE:UNINITIALIZED=${MY_CUSTOM_VARIABLE} + ) +if(NOT entries) + message(FATAL_ERROR "try_compile did not populate cache as expected") +endif() diff --git a/Tests/RunCMake/try_compile/RunCMakeTest.cmake b/Tests/RunCMake/try_compile/RunCMakeTest.cmake index 4b1d92a..ec099fe 100644 --- a/Tests/RunCMake/try_compile/RunCMakeTest.cmake +++ b/Tests/RunCMake/try_compile/RunCMakeTest.cmake @@ -16,6 +16,10 @@ run_cmake(BadSources2) run_cmake(NonSourceCopyFile) run_cmake(NonSourceCompileDefinitions) +set(RunCMake_TEST_OPTIONS --debug-trycompile) +run_cmake(PlatformVariables) +unset(RunCMake_TEST_OPTIONS) + run_cmake(TargetTypeExe) run_cmake(TargetTypeInvalid) run_cmake(TargetTypeStatic) |