From 35ec09480a32a98e4dda725a0fd1b7ba1e8b0b17 Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Wed, 2 Feb 2005 13:19:57 -0500 Subject: ENH: move AddFlags stuff up to LocalGenerator from LocalUnix generator --- Source/cmLocalGenerator.cxx | 71 ++++++++++++++++++++++++++++++++ Source/cmLocalGenerator.h | 5 +++ Source/cmLocalUnixMakefileGenerator2.cxx | 69 ------------------------------- Source/cmLocalUnixMakefileGenerator2.h | 4 -- 4 files changed, 76 insertions(+), 73 deletions(-) diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index 92cb202..8530f78 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 670e093..6f96149 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 321760f..d8cf0de 100644 --- a/Source/cmLocalUnixMakefileGenerator2.cxx +++ b/Source/cmLocalUnixMakefileGenerator2.cxx @@ -2308,75 +2308,6 @@ bool cmLocalUnixMakefileGenerator2::ComparePath(const char* c1, const char* c2) } //---------------------------------------------------------------------------- -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 ::AppendTargetDepends(std::vector& depends, diff --git a/Source/cmLocalUnixMakefileGenerator2.h b/Source/cmLocalUnixMakefileGenerator2.h index 41d5658..6c318d4 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); -- cgit v0.12