Browse Source

Merge topic 'vs11-deprecate'

6c1337cb79 Deprecate Visual Studio 11 2012 generator
5faf145a5b Tests: Drop unused files from RunCMake.CommandLine

Acked-by: Kitware Robot <[email protected]>
Merge-request: !7720
Brad King 3 năm trước cách đây
mục cha
commit
43a0206dad

+ 1 - 1
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.

+ 8 - 1
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.

+ 5 - 0
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.

+ 1 - 1
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\".";
   }
 

+ 20 - 0
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(

+ 7 - 0
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

+ 1 - 1
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@

+ 0 - 0
Tests/RunCMake/CommandLine/DeprecateVS10-WARN-OFF.cmake → Tests/RunCMake/CommandLine/DeprecateVS11-WARN-OFF.cmake


+ 5 - 0
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.$

+ 0 - 0
Tests/RunCMake/CommandLine/DeprecateVS10-WARN-ON.cmake → Tests/RunCMake/CommandLine/DeprecateVS11-WARN-ON.cmake


+ 7 - 0
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()