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.
This commit is contained in:
Brad King 2016-06-28 15:03:00 -04:00
parent d152ae123d
commit 943fe6e3b4
5 changed files with 0 additions and 34 deletions

View File

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

View File

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

View File

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

View File

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

View File

@ -2,6 +2,3 @@ int main(void)
{
return 0;
}
#ifdef PP_ERROR
#error PP_ERROR is defined
#endif