CMP0047: Fix CMAKE_COMPILER_IS_GNU(CC|CXX) in OLD behavior

The implementation of CMP0047 detects the QNX compiler id internally,
then changes it to GNU after the language is fully enabled.  This is too
late to correctly set the old IS_GNU variables, so set them as part of
the policy OLD behavior.

Reported-by: Mike Lattanzio <mlattanzio@blackberry.com>
This commit is contained in:
Brad King 2014-08-07 11:16:24 -04:00
parent 6f0d1a38c8
commit 70796ef026
1 changed files with 8 additions and 0 deletions

View File

@ -844,6 +844,14 @@ void cmGlobalGenerator::CheckCompilerIdCompatibility(cmMakefile* mf,
case cmPolicies::OLD: case cmPolicies::OLD:
// OLD behavior is to convert QCC to GNU. // OLD behavior is to convert QCC to GNU.
mf->AddDefinition(compilerIdVar, "GNU"); mf->AddDefinition(compilerIdVar, "GNU");
if(lang == "C")
{
mf->AddDefinition("CMAKE_COMPILER_IS_GNUCC", "1");
}
else if(lang == "CXX")
{
mf->AddDefinition("CMAKE_COMPILER_IS_GNUCXX", "1");
}
break; break;
case cmPolicies::REQUIRED_IF_USED: case cmPolicies::REQUIRED_IF_USED:
case cmPolicies::REQUIRED_ALWAYS: case cmPolicies::REQUIRED_ALWAYS: