Merge topic 'try_compile-honor-CMAKE_WARN_DEPRECATED'

6d604c49 try_compile: Honor CMAKE_WARN_DEPRECATED in test project
This commit is contained in:
Brad King 2016-11-29 08:59:07 -05:00 committed by CMake Topic Stage
commit 2f7bafd6da
4 changed files with 28 additions and 0 deletions

View File

@ -0,0 +1,6 @@
try_compile-honor-CMAKE_WARN_DEPRECATED
---------------------------------------
* The :command:`try_compile` command source file signature now
honors the :variable:`CMAKE_WARN_DEPRECATED` variable value
in the generated test project.

View File

@ -44,6 +44,7 @@ static std::string const kCMAKE_TRY_COMPILE_OSX_ARCHITECTURES =
"CMAKE_TRY_COMPILE_OSX_ARCHITECTURES";
static std::string const kCMAKE_TRY_COMPILE_PLATFORM_VARIABLES =
"CMAKE_TRY_COMPILE_PLATFORM_VARIABLES";
static std::string const kCMAKE_WARN_DEPRECATED = "CMAKE_WARN_DEPRECATED";
int cmCoreTryCompile::TryCompileCode(std::vector<std::string> const& argv,
bool isTryRun)
@ -453,6 +454,7 @@ int cmCoreTryCompile::TryCompileCode(std::vector<std::string> const& argv,
vars.insert(kCMAKE_OSX_SYSROOT);
vars.insert(kCMAKE_POSITION_INDEPENDENT_CODE);
vars.insert(kCMAKE_SYSROOT);
vars.insert(kCMAKE_WARN_DEPRECATED);
if (const char* varListStr = this->Makefile->GetDefinition(
kCMAKE_TRY_COMPILE_PLATFORM_VARIABLES)) {

View File

@ -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)

View File

@ -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()