diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2005-02-02 18:19:57 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2005-02-02 18:19:57 (GMT) |
commit | 35ec09480a32a98e4dda725a0fd1b7ba1e8b0b17 (patch) | |
tree | 9be6de049204514d9544f90715a3fffc6c75a316 /Source/cmLocalGenerator.cxx | |
parent | 0aa05c1f7b8b1d224138e3f03c7883cec47335aa (diff) | |
download | CMake-35ec09480a32a98e4dda725a0fd1b7ba1e8b0b17.zip CMake-35ec09480a32a98e4dda725a0fd1b7ba1e8b0b17.tar.gz CMake-35ec09480a32a98e4dda725a0fd1b7ba1e8b0b17.tar.bz2 |
ENH: move AddFlags stuff up to LocalGenerator from LocalUnix generator
Diffstat (limited to 'Source/cmLocalGenerator.cxx')
-rw-r--r-- | Source/cmLocalGenerator.cxx | 71 |
1 files changed, 71 insertions, 0 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; + } +} + |