summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2016-06-28 15:03:00 -0400
committerBrad King <brad.king@kitware.com>2016-06-28 15:03:45 -0400
commit943fe6e3b40cde7eb927bb2e2acf049fe580c188 (patch)
treec3732527bd7ace57a608042aca02aead3eae7145
parentd152ae123d1a3df456fe24f2e1a06d97083ad2d2 (diff)
downloadcmake-943fe6e3b40cde7eb927bb2e2acf049fe580c188.tar.gz
Revert "try_compile: Honor CMAKE_<LANG>_FLAGS_<CONFIG> changes"
Revert commit v3.6.0-rc1~160^2 (try_compile: Honor CMAKE_<LANG>_FLAGS_<CONFIG> 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.
-rw-r--r--Help/release/3.6.rst5
-rw-r--r--Source/cmCoreTryCompile.cxx8
-rw-r--r--Tests/RunCMake/try_compile/CompileFlags.cmake17
-rw-r--r--Tests/RunCMake/try_compile/RunCMakeTest.cmake1
-rw-r--r--Tests/RunCMake/try_compile/src.c3
5 files changed, 0 insertions, 34 deletions
diff --git a/Help/release/3.6.rst b/Help/release/3.6.rst
index 5c08b39f59..771c9dd4cb 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_<LANG>_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 0149fdfc74..75d0e9e0aa 100644
--- a/Source/cmCoreTryCompile.cxx
+++ b/Source/cmCoreTryCompile.cxx
@@ -333,14 +333,6 @@ int cmCoreTryCompile::TryCompileCode(std::vector<std::string> 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 d4dc0742f7..0000000000
--- 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 ec099fed69..4f30f1d40a 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 5e513825c7..8488f4e58f 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