diff options
-rw-r--r-- | Source/cmGeneratorTarget.cxx | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 20f2d96..153c611 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -945,12 +945,24 @@ void cmGeneratorTarget::GetAppleArchs(const std::string& config, //---------------------------------------------------------------------------- std::string cmGeneratorTarget::GetCreateRuleVariable(std::string const& lang, - std::string const&) const + std::string const& config) const { switch(this->GetType()) { case cmTarget::STATIC_LIBRARY: - return "CMAKE_" + lang + "_CREATE_STATIC_LIBRARY"; + { + std::string var = "CMAKE_" + lang + "_CREATE_STATIC_LIBRARY"; + if(this->Target->GetFeatureAsBool( + "INTERPROCEDURAL_OPTIMIZATION", config)) + { + std::string varIPO = var + "_IPO"; + if(this->Makefile->GetDefinition(varIPO)) + { + return varIPO; + } + } + return var; + } case cmTarget::SHARED_LIBRARY: return "CMAKE_" + lang + "_CREATE_SHARED_LIBRARY"; case cmTarget::MODULE_LIBRARY: |