| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- /*============================================================================
- 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"
- std::string cmExternalMakefileProjectGenerator::CreateFullGeneratorName(
- const char* globalGenerator,
- const char* extraGenerator)
- {
- std::string fullName;
- if (globalGenerator)
- {
- if (extraGenerator && *extraGenerator)
- {
- fullName = extraGenerator;
- fullName += " - ";
- }
- fullName += globalGenerator;
- }
- return fullName;
- }
- const char* cmExternalMakefileProjectGenerator::GetGlobalGeneratorName(
- const char* fullName)
- {
- // at least one global generator must be supported
- assert(!this->SupportedGlobalGenerators.empty());
- if (fullName==0)
- {
- return 0;
- }
- 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].c_str();
- }
- // 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->c_str(), this->GetName())
- == currentName)
- {
- return it->c_str();
- }
- }
- return 0;
- }
|