1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-14 02:08:27 +08:00

Deprecate Visual Studio 14 2015 generator

Update documentation to mark the generator deprecated.  Add a warning at
the end of generation plus an option to turn off the warning.
This commit is contained in:
Brad King
2025-06-24 14:38:26 -04:00
parent 0834918e0b
commit b10daadd08
13 changed files with 60 additions and 8 deletions

View File

@@ -3,7 +3,7 @@ Visual Studio 10 2010
Removed. This once generated Visual Studio 10 2010 project files, but
the generator has been removed since CMake 3.25. It is still possible
to build with the VS 10 2010 toolset by also installing VS 2015 (or above)
and using the :generator:`Visual Studio 14 2015` (or above) generator with
to build with the VS 10 2010 toolset by also installing VS 2017 (or above)
and using the :generator:`Visual Studio 15 2017` (or above) generator with
:variable:`CMAKE_GENERATOR_TOOLSET` set to ``v100``,
or by using the :generator:`NMake Makefiles` generator.

View File

@@ -3,7 +3,7 @@ Visual Studio 11 2012
Removed. This once generated Visual Studio 11 2012 project files, but
the generator has been removed since CMake 3.28. It is still possible
to build with the VS 11 2012 toolset by also installing VS 2015 (or above)
and using the :generator:`Visual Studio 14 2015` (or above) generator with
to build with the VS 11 2012 toolset by also installing VS 2017 (or above)
and using the :generator:`Visual Studio 15 2017` (or above) generator with
:variable:`CMAKE_GENERATOR_TOOLSET` set to ``v110``,
or by using the :generator:`NMake Makefiles` generator.

View File

@@ -3,7 +3,7 @@ Visual Studio 12 2013
Removed. This once generated Visual Studio 12 2013 project files, but
the generator has been removed since CMake 3.31. It is still possible
to build with the VS 12 2013 toolset by also installing VS 2015 (or above)
and using the :generator:`Visual Studio 14 2015` (or above) generator with
to build with the VS 12 2013 toolset by also installing VS 2017 (or above)
and using the :generator:`Visual Studio 15 2017` (or above) generator with
:variable:`CMAKE_GENERATOR_TOOLSET` set to ``v120``,
or by using the :generator:`NMake Makefiles` generator.

View File

@@ -1,6 +1,14 @@
Visual Studio 14 2015
---------------------
.. deprecated:: 4.2
This generator is deprecated and will be removed in a future version
of CMake. It will still be possible to build with VS 14 2015 tools
using the :generator:`Visual Studio 15 2017` (or above) generator
with :variable:`CMAKE_GENERATOR_TOOLSET` set to ``v140``, or by
using the :generator:`NMake Makefiles` generator.
.. versionadded:: 3.1
Generates Visual Studio 14 (VS 2015) project files.

View File

@@ -4,6 +4,6 @@ Visual Studio 9 2008
Removed. This once generated Visual Studio 9 2008 project files, but
the generator has been removed since CMake 3.30. It is still possible
to build with the VS 9 2008 toolset by also installing VS 10 2010 and
VS 2015 (or above) and using the :generator:`Visual Studio 14 2015`
VS 2017 (or above) and using the :generator:`Visual Studio 15 2017`
generator (or above) with :variable:`CMAKE_GENERATOR_TOOLSET` set to ``v90``,
or by using the :generator:`NMake Makefiles` generator.

View File

@@ -0,0 +1,5 @@
vs14-deprecate
--------------
* The :generator:`Visual Studio 14 2015` generator is now deprecated
and will be removed in a future version of CMake.

View File

@@ -57,7 +57,7 @@ public:
cmDocumentationEntry GetDocumentation() const override
{
return { std::string(vs14generatorName),
"Generates Visual Studio 2015 project files. "
"Deprecated. Generates Visual Studio 2015 project files. "
"Use -A option to specify architecture." };
}

View File

@@ -308,6 +308,26 @@ void cmGlobalVisualStudio7Generator::Generate()
this->CallVisualStudioMacro(MacroReload,
GetSLNFile(this->LocalGenerators[0].get()));
}
if (this->Version == VSVersion::VS14 &&
!this->CMakeInstance->GetIsInTryCompile()) {
std::string cmakeWarnVS14;
if (cmValue cached = this->CMakeInstance->GetState()->GetCacheEntryValue(
"CMAKE_WARN_VS14")) {
this->CMakeInstance->MarkCliAsUsed("CMAKE_WARN_VS14");
cmakeWarnVS14 = *cached;
} else {
cmSystemTools::GetEnv("CMAKE_WARN_VS14", cmakeWarnVS14);
}
if (cmakeWarnVS14.empty() || !cmIsOff(cmakeWarnVS14)) {
this->CMakeInstance->IssueMessage(
MessageType::WARNING,
"The \"Visual Studio 14 2015\" generator is deprecated "
"and will be removed in a future version of CMake."
"\n"
"Add CMAKE_WARN_VS14=OFF to the cache to disable this warning.");
}
}
}
void cmGlobalVisualStudio7Generator::OutputSLNFile(

View File

@@ -50,6 +50,13 @@ set(ENV{HOME} \"${TEST_HOME}\")
")
endif()
# Suppress generator deprecation warnings in test suite.
if(CMAKE_GENERATOR MATCHES "^Visual Studio 14 2015")
set(TEST_WARN_VS_CODE "set(ENV{CMAKE_WARN_VS14} OFF)")
else()
set(TEST_WARN_VS_CODE "")
endif()
# 3.9 or later provides a definitive answer to whether we are multi-config
# through a global property. Prior to 3.9, CMAKE_CONFIGURATION_TYPES being set
# is assumed to mean multi-config, but developers might modify it so it is

View File

@@ -0,0 +1,5 @@
^CMake Warning:
The "Visual Studio 14 2015" generator is deprecated and will be removed in
a future version of CMake.
Add CMAKE_WARN_VS14=OFF to the cache to disable this warning.$

View File

@@ -1167,3 +1167,10 @@ if (WIN32 OR DEFINED ENV{HOME})
endif()
set(ENV{CMAKE_CONFIG_DIR} cmake_config_dir)
run_cmake_command(print-config-dir-env ${CMAKE_COMMAND} "--print-config-dir")
if(RunCMake_GENERATOR MATCHES "^Visual Studio 14 2015")
run_cmake_with_options(DeprecateVS14-WARN-ON -DCMAKE_WARN_VS14=ON)
unset(ENV{CMAKE_WARN_VS14})
run_cmake(DeprecateVS14-WARN-ON)
run_cmake_with_options(DeprecateVS14-WARN-OFF -DCMAKE_WARN_VS14=OFF)
endif()