diff options
author | Brad King <brad.king@kitware.com> | 2002-12-20 17:59:18 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2002-12-20 17:59:18 (GMT) |
commit | 4e6ad941e981e81b53876508d17d1c3ef06938f2 (patch) | |
tree | 01940cd7e170d0db1c808a9dc381c866d83a03fa /Source/cmGlobalVisualStudio7Generator.cxx | |
parent | 309748ff79d827e191e93f8c28f42768dd5d3966 (diff) | |
download | CMake-4e6ad941e981e81b53876508d17d1c3ef06938f2.zip CMake-4e6ad941e981e81b53876508d17d1c3ef06938f2.tar.gz CMake-4e6ad941e981e81b53876508d17d1c3ef06938f2.tar.bz2 |
ENH: Visual Studio 6 and 7 generators now set CMAKE_CONFIGURATION_TYPES to be a semicolon-separated list of configurations that will be built.
Diffstat (limited to 'Source/cmGlobalVisualStudio7Generator.cxx')
-rw-r--r-- | Source/cmGlobalVisualStudio7Generator.cxx | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/Source/cmGlobalVisualStudio7Generator.cxx b/Source/cmGlobalVisualStudio7Generator.cxx index 7e62e21..f7a0a45 100644 --- a/Source/cmGlobalVisualStudio7Generator.cxx +++ b/Source/cmGlobalVisualStudio7Generator.cxx @@ -33,11 +33,12 @@ void cmGlobalVisualStudio7Generator::EnableLanguage(const char* lang, mf->AddDefinition("CMAKE_CFG_INTDIR","$(IntDir)"); mf->AddDefinition("CMAKE_GENERATOR_CC", "cl"); mf->AddDefinition("CMAKE_GENERATOR_CXX", "cl"); + + // Create list of configurations requested by user's cache, if any. + this->GenerateConfigurations(mf); this->cmGlobalGenerator::EnableLanguage(lang, mf); } - - int cmGlobalVisualStudio7Generator::TryCompile(const char *, const char *bindir, const char *projectName, @@ -150,7 +151,7 @@ void cmGlobalVisualStudio7Generator::SetupTests() } } -void cmGlobalVisualStudio7Generator::GenerateConfigurations() +void cmGlobalVisualStudio7Generator::GenerateConfigurations(cmMakefile* mf) { // process the configurations const char* ct @@ -163,7 +164,7 @@ void cmGlobalVisualStudio7Generator::GenerateConfigurations() std::string::size_type endpos = 0; while(endpos != std::string::npos) { - endpos = configTypes.find(' ', start); + endpos = configTypes.find_first_of(" ;", start); std::string config; std::string::size_type len; if(endpos != std::string::npos) @@ -200,13 +201,26 @@ void cmGlobalVisualStudio7Generator::GenerateConfigurations() m_Configurations.push_back("Debug"); m_Configurations.push_back("Release"); } + + // Reset the entry to have a semi-colon separated list. + std::string configs = m_Configurations[0]; + for(unsigned int i=1; i < m_Configurations.size(); ++i) + { + configs += ";"; + configs += m_Configurations[i]; + } + + mf->AddCacheDefinition( + "CMAKE_CONFIGURATION_TYPES", + configs.c_str(), + "Semicolon separated list of supported configuration types, " + "only supports Debug, Release, MinSizeRel, and RelWithDebInfo, " + "anything else will be ignored.", + cmCacheManager::STRING); } void cmGlobalVisualStudio7Generator::Generate() { - // Generate the possible configuraitons - this->GenerateConfigurations(); - // add a special target that depends on ALL projects for easy build // of Debug only m_LocalGenerators[0]->GetMakefile()-> @@ -580,8 +594,6 @@ std::string cmGlobalVisualStudio7Generator::CreateGUID(const char* name) void cmGlobalVisualStudio7Generator::LocalGenerate() { - // load the possible configuraitons - this->GenerateConfigurations(); this->cmGlobalGenerator::LocalGenerate(); } |