diff options
author | Brad King <brad.king@kitware.com> | 2009-10-02 17:52:13 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2009-10-02 17:52:13 (GMT) |
commit | c513962701dd6fbab8113ae104deb0eaa76a16e1 (patch) | |
tree | 2dd039d951e1b24c2d8318b275c7033e22f9a851 /Source/cmMakefileLibraryTargetGenerator.cxx | |
parent | 1e482435912f44e05b5e67f19b1bc14ff58a3169 (diff) | |
download | CMake-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.cxx | 6 |
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")); |