mirror of
https://github.com/Kitware/CMake.git
synced 2025-12-31 19:00:54 -06:00
Xcode: Use correct Object Library paths for cross-SDK builds
When calculating Object Library paths take a look at the `XCODE_EMIT_EFFECTIVE_PLATFORM_NAME` property to enable builds with different SDKs. Otherwise a hard-coded architecture could be chosen. Fixes: #16040
This commit is contained in:
@@ -147,7 +147,7 @@ cmGlobalXCodeGenerator::cmGlobalXCodeGenerator(
|
||||
this->XcodeBuildCommandInitialized = false;
|
||||
|
||||
this->ObjectDirArchDefault = "$(CURRENT_ARCH)";
|
||||
this->ComputeObjectDirArch();
|
||||
this->ObjectDirArch = this->ObjectDirArchDefault;
|
||||
|
||||
cm->GetState()->SetIsGeneratorMultiConfig(true);
|
||||
}
|
||||
@@ -3087,12 +3087,12 @@ void cmGlobalXCodeGenerator::ComputeArchitectures(cmMakefile* mf)
|
||||
}
|
||||
}
|
||||
|
||||
this->ComputeObjectDirArch();
|
||||
this->ComputeObjectDirArch(mf);
|
||||
}
|
||||
|
||||
void cmGlobalXCodeGenerator::ComputeObjectDirArch()
|
||||
void cmGlobalXCodeGenerator::ComputeObjectDirArch(cmMakefile* mf)
|
||||
{
|
||||
if (this->Architectures.size() > 1) {
|
||||
if (this->Architectures.size() > 1 || this->UseEffectivePlatformName(mf)) {
|
||||
this->ObjectDirArch = "$(CURRENT_ARCH)";
|
||||
} else if (!this->Architectures.empty()) {
|
||||
this->ObjectDirArch = this->Architectures[0];
|
||||
|
||||
@@ -247,7 +247,7 @@ private:
|
||||
const cmGeneratorTarget* t) const;
|
||||
|
||||
void ComputeArchitectures(cmMakefile* mf);
|
||||
void ComputeObjectDirArch();
|
||||
void ComputeObjectDirArch(cmMakefile* mf);
|
||||
|
||||
void addObject(cmXCodeObject* obj);
|
||||
std::string PostBuildMakeTarget(std::string const& tName,
|
||||
|
||||
Reference in New Issue
Block a user