| 3403 | } |
| 3404 | |
| 3405 | void cmGlobalXCodeGenerator::CreateTargetXCConfigSettings( |
| 3406 | cmGeneratorTarget* target, cmXCodeObject* config, |
| 3407 | std::string const& configName) |
| 3408 | { |
| 3409 | auto xcconfig = |
| 3410 | cmGeneratorExpression::Evaluate(target->GetSafeProperty("XCODE_XCCONFIG"), |
| 3411 | this->CurrentLocalGenerator, configName); |
| 3412 | if (xcconfig.empty()) { |
| 3413 | return; |
| 3414 | } |
| 3415 | |
| 3416 | auto* sf = target->Makefile->GetSource(xcconfig); |
| 3417 | if (!sf) { |
| 3418 | cmSystemTools::Error(cmStrCat("target sources for target ", |
| 3419 | target->Target->GetName(), |
| 3420 | " do not contain xcconfig file: '", xcconfig, |
| 3421 | "' (configuration: ", configName, ')')); |
| 3422 | return; |
| 3423 | } |
| 3424 | |
| 3425 | cmXCodeObject* fileRef = this->CreateXCodeFileReferenceFromPath( |
| 3426 | sf->ResolveFullPath(), target, "", sf); |
| 3427 | if (!fileRef) { |
| 3428 | // error is already reported by CreateXCodeFileReferenceFromPath |
| 3429 | return; |
| 3430 | } |
| 3431 | config->AddAttribute("baseConfigurationReference", |
| 3432 | this->CreateObjectReference(fileRef)); |
| 3433 | } |
| 3434 | |
| 3435 | char const* cmGlobalXCodeGenerator::GetTargetLinkFlagsVar( |
| 3436 | cmGeneratorTarget const* target) const |
no test coverage detected