Features: Allow setting standard dialect below the default.

If the requested standard dialect is older than the default dialect
then we must use a flag because we cannot decay to a newer standard.
This commit is contained in:
Stephen Kelly 2015-02-04 19:14:00 +01:00 committed by Brad King
parent 9d767810e1
commit 6027798a30
1 changed files with 15 additions and 1 deletions

View File

@ -2287,7 +2287,21 @@ AddCompilerRequirementFlag(std::string &flags, cmTarget* target,
return;
}
for ( ; stdIt <= defaultStdIt; ++stdIt)
// Greater or equal because the standards are stored in
// backward chronological order.
if (stdIt >= defaultStdIt)
{
std::string option_flag =
"CMAKE_" + lang + *stdIt
+ "_" + type + "_COMPILE_OPTION";
const char *opt =
target->GetMakefile()->GetRequiredDefinition(option_flag);
this->AppendFlagEscape(flags, opt);
return;
}
for ( ; stdIt < defaultStdIt; ++stdIt)
{
std::string option_flag =
"CMAKE_" + lang + *stdIt