From 943fe6e3b40cde7eb927bb2e2acf049fe580c188 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 28 Jun 2016 15:03:00 -0400 Subject: [PATCH] Revert "try_compile: Honor CMAKE__FLAGS_ changes" Revert commit v3.6.0-rc1~160^2 (try_compile: Honor CMAKE__FLAGS_ changes, 2016-04-11). The behavior it introduced can break projects that depend on the lack of such behavior. We will have to introduce a policy or other mechanism to enable the behavior in a compatible way. Simply revert it for now. See issue #16174. --- Help/release/3.6.rst | 5 ----- Source/cmCoreTryCompile.cxx | 8 -------- Tests/RunCMake/try_compile/CompileFlags.cmake | 17 ----------------- Tests/RunCMake/try_compile/RunCMakeTest.cmake | 1 - Tests/RunCMake/try_compile/src.c | 3 --- 5 files changed, 34 deletions(-) delete mode 100644 Tests/RunCMake/try_compile/CompileFlags.cmake diff --git a/Help/release/3.6.rst b/Help/release/3.6.rst index 5c08b39f5..771c9dd4c 100644 --- a/Help/release/3.6.rst +++ b/Help/release/3.6.rst @@ -42,11 +42,6 @@ Commands commands gained support for the ``%s`` placeholder. This is the number of seconds since the UNIX Epoch. -* The :command:`try_compile` command source file signature now honors - configuration-specific flags (e.g. :variable:`CMAKE__FLAGS_DEBUG`) - in the generated test project. Previously only the default such flags - for the current toolchain were used. - Variables --------- diff --git a/Source/cmCoreTryCompile.cxx b/Source/cmCoreTryCompile.cxx index 0149fdfc7..75d0e9e0a 100644 --- a/Source/cmCoreTryCompile.cxx +++ b/Source/cmCoreTryCompile.cxx @@ -333,14 +333,6 @@ int cmCoreTryCompile::TryCompileCode(std::vector const& argv, fprintf(fout, "set(CMAKE_%s_FLAGS \"${CMAKE_%s_FLAGS}" " ${COMPILE_DEFINITIONS}\")\n", li->c_str(), li->c_str()); - static std::string const cfgDefault = "DEBUG"; - std::string const cfg = - !tcConfig.empty() ? cmSystemTools::UpperCase(tcConfig) : cfgDefault; - std::string const langFlagsCfg = "CMAKE_" + *li + "_FLAGS_" + cfg; - const char* flagsCfg = this->Makefile->GetDefinition(langFlagsCfg); - fprintf( - fout, "set(%s %s)\n", langFlagsCfg.c_str(), - cmOutputConverter::EscapeForCMake(flagsCfg ? flagsCfg : "").c_str()); } switch (this->Makefile->GetPolicyStatus(cmPolicies::CMP0056)) { case cmPolicies::WARN: diff --git a/Tests/RunCMake/try_compile/CompileFlags.cmake b/Tests/RunCMake/try_compile/CompileFlags.cmake deleted file mode 100644 index d4dc0742f..000000000 --- a/Tests/RunCMake/try_compile/CompileFlags.cmake +++ /dev/null @@ -1,17 +0,0 @@ -enable_language(C) -set(CMAKE_C_FLAGS_RELEASE "-DPP_ERROR ${CMAKE_C_FLAGS_DEBUG}") - -#----------------------------------------------------------------------------- -set(CMAKE_TRY_COMPILE_CONFIGURATION Release) -try_compile(RESULT ${CMAKE_CURRENT_BINARY_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/src.c - OUTPUT_VARIABLE out - ) -string(REPLACE "\n" "\n " out " ${out}") -if(RESULT) - message(FATAL_ERROR "try_compile passed but should have failed:\n${out}") -elseif(NOT "x${out}" MATCHES "PP_ERROR is defined") - message(FATAL_ERROR "try_compile did not fail with PP_ERROR:\n${out}") -else() - message(STATUS "try_compile with per-config flag worked as expected") -endif() diff --git a/Tests/RunCMake/try_compile/RunCMakeTest.cmake b/Tests/RunCMake/try_compile/RunCMakeTest.cmake index ec099fed6..4f30f1d40 100644 --- a/Tests/RunCMake/try_compile/RunCMakeTest.cmake +++ b/Tests/RunCMake/try_compile/RunCMakeTest.cmake @@ -25,7 +25,6 @@ run_cmake(TargetTypeInvalid) run_cmake(TargetTypeStatic) run_cmake(CMP0056) -run_cmake(CompileFlags) if(RunCMake_GENERATOR MATCHES "Make|Ninja") # Use a single build tree for a few tests without cleaning. diff --git a/Tests/RunCMake/try_compile/src.c b/Tests/RunCMake/try_compile/src.c index 5e513825c..8488f4e58 100644 --- a/Tests/RunCMake/try_compile/src.c +++ b/Tests/RunCMake/try_compile/src.c @@ -2,6 +2,3 @@ int main(void) { return 0; } -#ifdef PP_ERROR -#error PP_ERROR is defined -#endif