/*============================================================================ 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; }