Commit f8a1b079 authored by Brad King's avatar Brad King Committed by Kitware Robot

Merge topic 'objc-standard-fix' into release-3.16

6a818b69 ObjC: Proper initialization of ObjC/XX standard properties
Acked-by: Kitware Robot's avatarKitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard's avatarRobert Maynard <robert.maynard@kitware.com>
Merge-request: !4050
parents 330b7b01 6a818b69
......@@ -714,21 +714,36 @@ bool cmLocalGenerator::ComputeTargetCompileFeatures()
// Now that C/C++ _STANDARD values have been computed
// set the values to ObjC/ObjCXX _STANDARD variables
auto copyPropertyToObjLang = [&](LanguagePair const& lang,
const char* property) {
if (target->GetType() == cmStateEnums::INTERFACE_LIBRARY) {
return;
}
if (!target->GetProperty(cmStrCat(lang.first, property))) {
target->Target->SetProperty(
cmStrCat(lang.first, property),
target->GetProperty(cmStrCat(lang.second, property)));
if (target->GetType() != cmStateEnums::INTERFACE_LIBRARY) {
auto copyStandardToObjLang = [&](LanguagePair const& lang) -> bool {
if (!target->GetProperty(cmStrCat(lang.first, "_STANDARD"))) {
auto* standard =
target->GetProperty(cmStrCat(lang.second, "_STANDARD"));
if (!standard) {
standard = this->Makefile->GetDefinition(
cmStrCat("CMAKE_", lang.second, "_STANDARD_DEFAULT"));
}
target->Target->SetProperty(cmStrCat(lang.first, "_STANDARD"),
standard);
return true;
}
return false;
};
auto copyPropertyToObjLang = [&](LanguagePair const& lang,
const char* property) {
if (!target->GetProperty(cmStrCat(lang.first, property)) &&
target->GetProperty(cmStrCat(lang.second, property))) {
target->Target->SetProperty(
cmStrCat(lang.first, property),
target->GetProperty(cmStrCat(lang.second, property)));
}
};
for (auto const& lang : objcEnabledLanguages) {
if (copyStandardToObjLang(lang)) {
copyPropertyToObjLang(lang, "_STANDARD_REQUIRED");
copyPropertyToObjLang(lang, "_EXTENSIONS");
}
}
};
for (auto const& lang : objcEnabledLanguages) {
copyPropertyToObjLang(lang, "_STANDARD");
copyPropertyToObjLang(lang, "_STANDARD_REQUIRED");
copyPropertyToObjLang(lang, "_EXTENSIONS");
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment