diff options
Diffstat (limited to 'Source/cmExternalMakefileProjectGenerator.cxx')
-rw-r--r-- | Source/cmExternalMakefileProjectGenerator.cxx | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/Source/cmExternalMakefileProjectGenerator.cxx b/Source/cmExternalMakefileProjectGenerator.cxx new file mode 100644 index 0000000..9264671 --- /dev/null +++ b/Source/cmExternalMakefileProjectGenerator.cxx @@ -0,0 +1,70 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2000-2009 Kitware, Inc., Insight Software Consortium + + Distributed under the OSI-approved BSD License (the "License"); + see accompanying file Copyright.txt for details. + + This software is distributed WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License for more information. +============================================================================*/ +#include <assert.h> + +#include "cmExternalMakefileProjectGenerator.h" + +void cmExternalMakefileProjectGenerator +::EnableLanguage(std::vector<std::string> const&, + cmMakefile *, bool) +{ +} + +std::string cmExternalMakefileProjectGenerator::CreateFullGeneratorName( + const std::string& globalGenerator, + const std::string& extraGenerator) +{ + std::string fullName; + if (!globalGenerator.empty()) + { + if (!extraGenerator.empty()) + { + fullName = extraGenerator; + fullName += " - "; + } + fullName += globalGenerator; + } + return fullName; +} + +std::string cmExternalMakefileProjectGenerator::GetGlobalGeneratorName( + const std::string& fullName) +{ + // at least one global generator must be supported + assert(!this->SupportedGlobalGenerators.empty()); + + if (fullName.empty()) + { + return ""; + } + + std::string currentName = fullName; + // if we get only the short name, take the first global generator as default + if (currentName == this->GetName()) + { + return this->SupportedGlobalGenerators[0]; + } + + // otherwise search for the matching global generator + for (std::vector<std::string>::const_iterator + it = this->SupportedGlobalGenerators.begin(); + it != this->SupportedGlobalGenerators.end(); + ++it) + { + if (this->CreateFullGeneratorName(*it, this->GetName()) + == currentName) + { + return *it; + } + } + return ""; +} |