VS: Always initialize CMAKE_CONFIGURATION_TYPES in IDE generators
Initialize the CMAKE_CONFIGURATION_TYPES cache entry early during EnableLanguage like the Xcode generator does. Avoid depending on the MSVC compiler information module to do it. Otherwise code like project(MyProj NONE) sets CMAKE_CONFIGURATION_TYPES late (in GenerateConfigurations), and to only "Debug" and "Release" instead of the standard set of 4. Reported-by: Paul Smith <paul@mad-scientist.net>
This commit is contained in:
parent
a3f106dedf
commit
42bb42d197
|
@ -52,9 +52,6 @@ if(CMAKE_GENERATOR MATCHES "Visual Studio 6")
|
|||
endif()
|
||||
if(NOT CMAKE_NO_BUILD_TYPE AND CMAKE_GENERATOR MATCHES "Visual Studio")
|
||||
set (CMAKE_NO_BUILD_TYPE 1)
|
||||
set (CMAKE_CONFIGURATION_TYPES "Debug;Release;MinSizeRel;RelWithDebInfo" CACHE STRING
|
||||
"Semicolon separated list of supported configuration types, only supports Debug, Release, MinSizeRel, and RelWithDebInfo, anything else will be ignored.")
|
||||
mark_as_advanced(CMAKE_CONFIGURATION_TYPES)
|
||||
endif()
|
||||
|
||||
# make sure to enable languages after setting configuration types
|
||||
|
|
|
@ -38,8 +38,6 @@ if(CMAKE_GENERATOR MATCHES "Visual Studio 6")
|
|||
endif()
|
||||
if(CMAKE_GENERATOR MATCHES "Visual Studio 7" OR CMAKE_GENERATOR MATCHES "Visual Studio 8")
|
||||
set (CMAKE_NO_BUILD_TYPE 1)
|
||||
set (CMAKE_CONFIGURATION_TYPES "Debug;Release;MinSizeRel;RelWithDebInfo" CACHE STRING
|
||||
"Semicolon separated list of supported configuration types, only supports Debug, Release, MinSizeRel, and RelWithDebInfo, anything else will be ignored.")
|
||||
endif()
|
||||
# does the compiler support pdbtype and is it the newer compiler
|
||||
|
||||
|
|
|
@ -31,6 +31,16 @@ void cmGlobalVisualStudio7Generator
|
|||
mf->AddDefinition("CMAKE_GENERATOR_NO_COMPILER_ENV", "1");
|
||||
mf->AddDefinition("CMAKE_GENERATOR_FC", "ifort");
|
||||
this->AddPlatformDefinitions(mf);
|
||||
if(!mf->GetDefinition("CMAKE_CONFIGURATION_TYPES"))
|
||||
{
|
||||
mf->AddCacheDefinition(
|
||||
"CMAKE_CONFIGURATION_TYPES",
|
||||
"Debug;Release;MinSizeRel;RelWithDebInfo",
|
||||
"Semicolon separated list of supported configuration types, "
|
||||
"only supports Debug, Release, MinSizeRel, and RelWithDebInfo, "
|
||||
"anything else will be ignored.",
|
||||
cmCacheManager::STRING);
|
||||
}
|
||||
|
||||
// Create list of configurations requested by user's cache, if any.
|
||||
this->cmGlobalGenerator::EnableLanguage(lang, mf, optional);
|
||||
|
|
Loading…
Reference in New Issue