summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorRuslan Baratov <ruslan_baratov@yahoo.com>2017-04-27 13:18:26 (GMT)
committerRuslan Baratov <ruslan_baratov@yahoo.com>2017-05-02 15:33:25 (GMT)
commit7e75568b001e29a7428d7489c57cebd909359571 (patch)
tree19631d949a74b59572214900a6e9afa8d42b0012 /Source
parente80e8eb609cc7dd8c4dca46b9c2819afd2293229 (diff)
downloadCMake-7e75568b001e29a7428d7489c57cebd909359571.zip
CMake-7e75568b001e29a7428d7489c57cebd909359571.tar.gz
CMake-7e75568b001e29a7428d7489c57cebd909359571.tar.bz2
Xcode: Support IPO (LTO)
Diffstat (limited to 'Source')
-rw-r--r--Source/cmGlobalXCodeGenerator.cxx7
-rw-r--r--Source/cmGlobalXCodeGenerator.h2
2 files changed, 7 insertions, 2 deletions
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index d99e3bb..95c1236 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -1683,8 +1683,11 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmGeneratorTarget* gtgt,
return;
}
- // Check IPO related warning/error.
- gtgt->IsIPOEnabled(configName);
+ if (gtgt->IsIPOEnabled(configName)) {
+ const char* ltoValue =
+ this->CurrentMakefile->IsOn("_CMAKE_LTO_THIN") ? "YES_THIN" : "YES";
+ buildSettings->AddAttribute("LLVM_LTO", this->CreateString(ltoValue));
+ }
// Add define flags
this->CurrentLocalGenerator->AppendFlags(
diff --git a/Source/cmGlobalXCodeGenerator.h b/Source/cmGlobalXCodeGenerator.h
index ee06074..a5d169f 100644
--- a/Source/cmGlobalXCodeGenerator.h
+++ b/Source/cmGlobalXCodeGenerator.h
@@ -90,6 +90,8 @@ public:
bool HasKnownObjectFileLocation(std::string* reason) const CM_OVERRIDE;
+ bool IsIPOSupported() const CM_OVERRIDE { return true; }
+
bool UseEffectivePlatformName(cmMakefile* mf) const CM_OVERRIDE;
bool ShouldStripResourcePath(cmMakefile*) const CM_OVERRIDE;