diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index 92cb2029b..8530f780e 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -1267,3 +1267,74 @@ void cmLocalGenerator::OutputLinkLibraries(std::ostream& fout, fout << m_Makefile->GetDefinition("CMAKE_STANDARD_LIBRARIES") << " "; } } + + +//---------------------------------------------------------------------------- +void cmLocalGenerator::AddLanguageFlags(std::string& flags, + const char* lang) +{ + // Add language-specific flags. + std::string flagsVar = "CMAKE_"; + flagsVar += lang; + flagsVar += "_FLAGS"; + this->AddConfigVariableFlags(flags, flagsVar.c_str()); +} + +//---------------------------------------------------------------------------- +void cmLocalGenerator::AddSharedFlags(std::string& flags, + const char* lang, + bool shared) +{ + std::string flagsVar; + + // Add flags for dealing with shared libraries for this language. + if(shared) + { + flagsVar = "CMAKE_SHARED_LIBRARY_"; + flagsVar += lang; + flagsVar += "_FLAGS"; + this->AppendFlags(flags, m_Makefile->GetDefinition(flagsVar.c_str())); + } + + // Add flags specific to shared builds. + if(cmSystemTools::IsOn(m_Makefile->GetDefinition("BUILD_SHARED_LIBS"))) + { + flagsVar = "CMAKE_SHARED_BUILD_"; + flagsVar += lang; + flagsVar += "_FLAGS"; + this->AppendFlags(flags, m_Makefile->GetDefinition(flagsVar.c_str())); + } +} + +//---------------------------------------------------------------------------- +void cmLocalGenerator::AddConfigVariableFlags(std::string& flags, + const char* var) +{ + // Add the flags from the variable itself. + std::string flagsVar = var; + this->AppendFlags(flags, m_Makefile->GetDefinition(flagsVar.c_str())); + + // Add the flags from the build-type specific variable. + const char* buildType = m_Makefile->GetDefinition("CMAKE_BUILD_TYPE"); + if(buildType && *buildType) + { + flagsVar += "_"; + flagsVar += cmSystemTools::UpperCase(buildType); + this->AppendFlags(flags, m_Makefile->GetDefinition(flagsVar.c_str())); + } +} + +//---------------------------------------------------------------------------- +void cmLocalGenerator::AppendFlags(std::string& flags, + const char* newFlags) +{ + if(newFlags && *newFlags) + { + if(flags.size()) + { + flags += " "; + } + flags += newFlags; + } +} + diff --git a/Source/cmLocalGenerator.h b/Source/cmLocalGenerator.h index 670e09310..6f9614982 100644 --- a/Source/cmLocalGenerator.h +++ b/Source/cmLocalGenerator.h @@ -94,6 +94,11 @@ public: void SetParent(cmLocalGenerator* g) { m_Parent = g;} protected: + void AddLanguageFlags(std::string& flags, const char* lang); + void AddSharedFlags(std::string& flags, const char* lang, bool shared); + void AddConfigVariableFlags(std::string& flags, const char* var); + void AppendFlags(std::string& flags, const char* newFlags); + ///! Fill out these strings for the given target. Libraries to link, flags, and linkflags. void GetTargetFlags(std::string& linkLibs, std::string& flags, diff --git a/Source/cmLocalUnixMakefileGenerator2.cxx b/Source/cmLocalUnixMakefileGenerator2.cxx index 321760f87..d8cf0de32 100644 --- a/Source/cmLocalUnixMakefileGenerator2.cxx +++ b/Source/cmLocalUnixMakefileGenerator2.cxx @@ -2307,75 +2307,6 @@ bool cmLocalUnixMakefileGenerator2::ComparePath(const char* c1, const char* c2) #endif } -//---------------------------------------------------------------------------- -void cmLocalUnixMakefileGenerator2::AddLanguageFlags(std::string& flags, - const char* lang) -{ - // Add language-specific flags. - std::string flagsVar = "CMAKE_"; - flagsVar += lang; - flagsVar += "_FLAGS"; - this->AddConfigVariableFlags(flags, flagsVar.c_str()); -} - -//---------------------------------------------------------------------------- -void cmLocalUnixMakefileGenerator2::AddSharedFlags(std::string& flags, - const char* lang, - bool shared) -{ - std::string flagsVar; - - // Add flags for dealing with shared libraries for this language. - if(shared) - { - flagsVar = "CMAKE_SHARED_LIBRARY_"; - flagsVar += lang; - flagsVar += "_FLAGS"; - this->AppendFlags(flags, m_Makefile->GetDefinition(flagsVar.c_str())); - } - - // Add flags specific to shared builds. - if(cmSystemTools::IsOn(m_Makefile->GetDefinition("BUILD_SHARED_LIBS"))) - { - flagsVar = "CMAKE_SHARED_BUILD_"; - flagsVar += lang; - flagsVar += "_FLAGS"; - this->AppendFlags(flags, m_Makefile->GetDefinition(flagsVar.c_str())); - } -} - -//---------------------------------------------------------------------------- -void cmLocalUnixMakefileGenerator2::AddConfigVariableFlags(std::string& flags, - const char* var) -{ - // Add the flags from the variable itself. - std::string flagsVar = var; - this->AppendFlags(flags, m_Makefile->GetDefinition(flagsVar.c_str())); - - // Add the flags from the build-type specific variable. - const char* buildType = m_Makefile->GetDefinition("CMAKE_BUILD_TYPE"); - if(buildType && *buildType) - { - flagsVar += "_"; - flagsVar += cmSystemTools::UpperCase(buildType); - this->AppendFlags(flags, m_Makefile->GetDefinition(flagsVar.c_str())); - } -} - -//---------------------------------------------------------------------------- -void cmLocalUnixMakefileGenerator2::AppendFlags(std::string& flags, - const char* newFlags) -{ - if(newFlags && *newFlags) - { - if(flags.size()) - { - flags += " "; - } - flags += newFlags; - } -} - //---------------------------------------------------------------------------- void cmLocalUnixMakefileGenerator2 diff --git a/Source/cmLocalUnixMakefileGenerator2.h b/Source/cmLocalUnixMakefileGenerator2.h index 41d5658ca..6c318d4aa 100644 --- a/Source/cmLocalUnixMakefileGenerator2.h +++ b/Source/cmLocalUnixMakefileGenerator2.h @@ -159,10 +159,6 @@ protected: void SplitFullPath(const char* p, std::vector& components); bool ComparePath(const char* c1, const char* c2); - void AddLanguageFlags(std::string& flags, const char* lang); - void AddSharedFlags(std::string& flags, const char* lang, bool shared); - void AddConfigVariableFlags(std::string& flags, const char* var); - void AppendFlags(std::string& flags, const char* newFlags); void AppendTargetDepends(std::vector& depends, const cmTarget& target); void AppendAnyDepend(std::vector& depends, const char* name);