diff options
-rw-r--r-- | Help/generator/Visual Studio 10 2010.rst | 2 | ||||
-rw-r--r-- | Help/generator/Visual Studio 11 2012.rst | 9 | ||||
-rw-r--r-- | Help/release/dev/vs11-deprecate.rst | 5 | ||||
-rw-r--r-- | Source/cmGlobalVisualStudio11Generator.cxx | 2 | ||||
-rw-r--r-- | Source/cmGlobalVisualStudio7Generator.cxx | 20 | ||||
-rw-r--r-- | Tests/CMakeLists.txt | 7 | ||||
-rw-r--r-- | Tests/EnforceConfig.cmake.in | 2 | ||||
-rw-r--r-- | Tests/RunCMake/CommandLine/DeprecateVS11-WARN-OFF.cmake | 0 | ||||
-rw-r--r-- | Tests/RunCMake/CommandLine/DeprecateVS11-WARN-ON-stderr.txt | 5 | ||||
-rw-r--r-- | Tests/RunCMake/CommandLine/DeprecateVS11-WARN-ON.cmake | 0 | ||||
-rw-r--r-- | Tests/RunCMake/CommandLine/RunCMakeTest.cmake | 7 |
11 files changed, 55 insertions, 4 deletions
diff --git a/Help/generator/Visual Studio 10 2010.rst b/Help/generator/Visual Studio 10 2010.rst index ee44514..888164f 100644 --- a/Help/generator/Visual Studio 10 2010.rst +++ b/Help/generator/Visual Studio 10 2010.rst @@ -3,6 +3,6 @@ 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 VS 10 2010 tools using the :generator:`Visual Studio 11 2012` +to build with VS 10 2010 tools using the :generator:`Visual Studio 12 2013` (or above) generator with :variable:`CMAKE_GENERATOR_TOOLSET` set to ``v100``, or by using the :generator:`NMake Makefiles` generator. diff --git a/Help/generator/Visual Studio 11 2012.rst b/Help/generator/Visual Studio 11 2012.rst index adbd1af..4e7195c 100644 --- a/Help/generator/Visual Studio 11 2012.rst +++ b/Help/generator/Visual Studio 11 2012.rst @@ -1,7 +1,14 @@ Visual Studio 11 2012 --------------------- -Generates Visual Studio 11 (VS 2012) project files. +Deprecated. Generates Visual Studio 11 (VS 2012) project files. + +.. note:: + This generator is deprecated and will be removed in a future version + of CMake. It will still be possible to build with VS 11 2012 tools + using the :generator:`Visual Studio 12 2013` (or above) generator + with :variable:`CMAKE_GENERATOR_TOOLSET` set to ``v110``, or by + using the :generator:`NMake Makefiles` generator. For compatibility with CMake versions prior to 3.0, one may specify this generator using the name "Visual Studio 11" without the year component. diff --git a/Help/release/dev/vs11-deprecate.rst b/Help/release/dev/vs11-deprecate.rst new file mode 100644 index 0000000..2ee69bb --- /dev/null +++ b/Help/release/dev/vs11-deprecate.rst @@ -0,0 +1,5 @@ +vs11-deprecate +-------------- + +* The :generator:`Visual Studio 11 2012` generator is now deprecated + and will be removed in a future version of CMake. diff --git a/Source/cmGlobalVisualStudio11Generator.cxx b/Source/cmGlobalVisualStudio11Generator.cxx index 10dc258..086d3af 100644 --- a/Source/cmGlobalVisualStudio11Generator.cxx +++ b/Source/cmGlobalVisualStudio11Generator.cxx @@ -77,7 +77,7 @@ public: void GetDocumentation(cmDocumentationEntry& entry) const override { entry.Name = std::string(vs11generatorName) + " [arch]"; - entry.Brief = "Generates Visual Studio 2012 project files. " + entry.Brief = "Deprecated. Generates Visual Studio 2012 project files. " "Optional [arch] can be \"Win64\" or \"ARM\"."; } diff --git a/Source/cmGlobalVisualStudio7Generator.cxx b/Source/cmGlobalVisualStudio7Generator.cxx index 7bf3c3a..ff76762 100644 --- a/Source/cmGlobalVisualStudio7Generator.cxx +++ b/Source/cmGlobalVisualStudio7Generator.cxx @@ -303,6 +303,26 @@ void cmGlobalVisualStudio7Generator::Generate() this->CallVisualStudioMacro(MacroReload, GetSLNFile(this->LocalGenerators[0].get())); } + + if (this->Version == VSVersion::VS11 && + !this->CMakeInstance->GetIsInTryCompile()) { + std::string cmakeWarnVS11; + if (cmValue cached = this->CMakeInstance->GetState()->GetCacheEntryValue( + "CMAKE_WARN_VS11")) { + this->CMakeInstance->MarkCliAsUsed("CMAKE_WARN_VS11"); + cmakeWarnVS11 = *cached; + } else { + cmSystemTools::GetEnv("CMAKE_WARN_VS11", cmakeWarnVS11); + } + if (cmakeWarnVS11.empty() || !cmIsOff(cmakeWarnVS11)) { + this->CMakeInstance->IssueMessage( + MessageType::WARNING, + "The \"Visual Studio 11 2012\" generator is deprecated " + "and will be removed in a future version of CMake." + "\n" + "Add CMAKE_WARN_VS11=OFF to the cache to disable this warning."); + } + } } void cmGlobalVisualStudio7Generator::OutputSLNFile( diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 934f054..da87213 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -39,6 +39,13 @@ set(ENV{HOME} \"${TEST_HOME}\") ") endif() +# Suppress generator deprecation warnings in test suite. +if(CMAKE_GENERATOR MATCHES "^Visual Studio 11 2012") + set(TEST_WARN_VS11_CODE "set(ENV{CMAKE_WARN_VS11} OFF)") +else() + set(TEST_WARN_VS11_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 diff --git a/Tests/EnforceConfig.cmake.in b/Tests/EnforceConfig.cmake.in index 10f8461..7722d7d 100644 --- a/Tests/EnforceConfig.cmake.in +++ b/Tests/EnforceConfig.cmake.in @@ -36,4 +36,4 @@ unset(ENV{CMAKE_GENERATOR_TOOLSET}) unset(ENV{CMAKE_EXPORT_COMPILE_COMMANDS}) @TEST_HOME_ENV_CODE@ -@TEST_WARN_VS10_CODE@ +@TEST_WARN_VS11_CODE@ diff --git a/Tests/RunCMake/CommandLine/DeprecateVS11-WARN-OFF.cmake b/Tests/RunCMake/CommandLine/DeprecateVS11-WARN-OFF.cmake new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/Tests/RunCMake/CommandLine/DeprecateVS11-WARN-OFF.cmake diff --git a/Tests/RunCMake/CommandLine/DeprecateVS11-WARN-ON-stderr.txt b/Tests/RunCMake/CommandLine/DeprecateVS11-WARN-ON-stderr.txt new file mode 100644 index 0000000..9080942 --- /dev/null +++ b/Tests/RunCMake/CommandLine/DeprecateVS11-WARN-ON-stderr.txt @@ -0,0 +1,5 @@ +^CMake Warning: + The "Visual Studio 11 2012" generator is deprecated and will be removed in + a future version of CMake. + + Add CMAKE_WARN_VS11=OFF to the cache to disable this warning.$ diff --git a/Tests/RunCMake/CommandLine/DeprecateVS11-WARN-ON.cmake b/Tests/RunCMake/CommandLine/DeprecateVS11-WARN-ON.cmake new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/Tests/RunCMake/CommandLine/DeprecateVS11-WARN-ON.cmake diff --git a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake index dc61759..a2eeddf 100644 --- a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake +++ b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake @@ -1071,3 +1071,10 @@ set(ProfilingTestOutput ${RunCMake_TEST_BINARY_DIR}/output.json) set(RunCMake_TEST_OPTIONS --profiling-format=google-trace --profiling-output=${ProfilingTestOutput}) run_cmake(ProfilingTest) unset(RunCMake_TEST_OPTIONS) + +if(RunCMake_GENERATOR MATCHES "^Visual Studio 11 2012") + run_cmake_with_options(DeprecateVS11-WARN-ON -DCMAKE_WARN_VS11=ON) + unset(ENV{CMAKE_WARN_VS11}) + run_cmake(DeprecateVS11-WARN-ON) + run_cmake_with_options(DeprecateVS11-WARN-OFF -DCMAKE_WARN_VS11=OFF) +endif() |