mirror of
https://github.com/Kitware/CMake.git
synced 2025-12-31 10:50:16 -06:00
Add infrastructure to use language extensions without any standard
When `<LANG>_STANDARD` is not set we will not add any language standard flags. If `<LANG>_EXTENSIONS` is not OFF then our default is supposed to be ON. In order to support compilers that do not enable their extensions by default, check a `CMAKE_<LANG>_EXTENSION_COMPILE_OPTION` variable for an extensions flag to use without any language standard. Suggested-by: Norbert Lange <nolange79@gmail.com>
This commit is contained in:
@@ -1498,6 +1498,16 @@ void cmLocalGenerator::AddCompilerRequirementFlag(
|
||||
std::string stdProp = lang + "_STANDARD";
|
||||
const char* standardProp = target->GetProperty(stdProp);
|
||||
if (!standardProp) {
|
||||
if (ext) {
|
||||
// No language standard is specified and extensions are not disabled.
|
||||
// Check if this compiler needs a flag to enable extensions.
|
||||
std::string const option_flag =
|
||||
"CMAKE_" + lang + "_EXTENSION_COMPILE_OPTION";
|
||||
if (const char* opt =
|
||||
target->Target->GetMakefile()->GetDefinition(option_flag)) {
|
||||
this->AppendFlagEscape(flags, opt);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user