summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefileLibraryTargetGenerator.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2009-10-02 17:52:13 (GMT)
committerBrad King <brad.king@kitware.com>2009-10-02 17:52:13 (GMT)
commitc513962701dd6fbab8113ae104deb0eaa76a16e1 (patch)
tree2dd039d951e1b24c2d8318b275c7033e22f9a851 /Source/cmMakefileLibraryTargetGenerator.cxx
parent1e482435912f44e05b5e67f19b1bc14ff58a3169 (diff)
downloadCMake-c513962701dd6fbab8113ae104deb0eaa76a16e1.zip
CMake-c513962701dd6fbab8113ae104deb0eaa76a16e1.tar.gz
CMake-c513962701dd6fbab8113ae104deb0eaa76a16e1.tar.bz2
Create INTERPROCEDURAL_OPTIMIZATION build feature
This commit creates target and directory properties to enable the Intel interprocedural optimization support on Linux. Enabling it adds the compiler option '-ipo' and uses 'xiar' to create archives. See issue #9615.
Diffstat (limited to 'Source/cmMakefileLibraryTargetGenerator.cxx')
-rw-r--r--Source/cmMakefileLibraryTargetGenerator.cxx6
1 files changed, 6 insertions, 0 deletions
diff --git a/Source/cmMakefileLibraryTargetGenerator.cxx b/Source/cmMakefileLibraryTargetGenerator.cxx
index 24b037f..4070a3b 100644
--- a/Source/cmMakefileLibraryTargetGenerator.cxx
+++ b/Source/cmMakefileLibraryTargetGenerator.cxx
@@ -113,6 +113,12 @@ void cmMakefileLibraryTargetGenerator::WriteStaticLibraryRules()
}
linkRuleVar += "_CREATE_STATIC_LIBRARY";
+ if(this->GetFeatureAsBool("INTERPROCEDURAL_OPTIMIZATION") &&
+ this->Makefile->GetDefinition((linkRuleVar+"_IPO").c_str()))
+ {
+ linkRuleVar += "_IPO";
+ }
+
std::string extraFlags;
this->LocalGenerator->AppendFlags
(extraFlags,this->Target->GetProperty("STATIC_LIBRARY_FLAGS"));