try_compile: Honor CMAKE_WARN_DEPRECATED in test project

This causes the `-Wno-deprecated` option to be honored even inside a
`try_compile` test project, which is needed to suppress all deprecation
warnings as the option documents.

Closes: #16446
This commit is contained in:
Brad King
2016-11-22 10:08:45 -05:00
parent 74a0359ee6
commit 6d604c4972
4 changed files with 28 additions and 0 deletions
@@ -18,6 +18,7 @@ run_cmake(NonSourceCompileDefinitions)
set(RunCMake_TEST_OPTIONS --debug-trycompile)
run_cmake(PlatformVariables)
run_cmake(WarnDeprecated)
unset(RunCMake_TEST_OPTIONS)
run_cmake(TargetTypeExe)
@@ -0,0 +1,19 @@
enable_language(C)
set(CMAKE_WARN_DEPRECATED 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 CMAKE_WARN_DEPRECATED:UNINITIALIZED=${CMAKE_WARN_DEPRECATED}
)
if(NOT entries)
message(FATAL_ERROR "try_compile did not populate cache as expected")
endif()