Browse Source

VS: Add CMAKE_VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION variable

Provide a way to initialize the `VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION`
target property on targets.  It sets `WindowsTargetPlatformMinVersion`
in `.vcxproj` files.
halx99 2 years ago
parent
commit
6546305b01

+ 1 - 0
Help/manual/cmake-variables.7.rst

@@ -132,6 +132,7 @@ Variables that Provide Information
    /variable/CMAKE_VS_TARGET_FRAMEWORK_TARGETS_VERSION
    /variable/CMAKE_VS_TARGET_FRAMEWORK_TARGETS_VERSION
    /variable/CMAKE_VS_TARGET_FRAMEWORK_VERSION
    /variable/CMAKE_VS_TARGET_FRAMEWORK_VERSION
    /variable/CMAKE_VS_VERSION_BUILD_NUMBER
    /variable/CMAKE_VS_VERSION_BUILD_NUMBER
+   /variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION
    /variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION
    /variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION
    /variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION_MAXIMUM
    /variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION_MAXIMUM
    /variable/CMAKE_XCODE_BUILD_SYSTEM
    /variable/CMAKE_XCODE_BUILD_SYSTEM

+ 8 - 3
Help/prop_tgt/VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION.rst

@@ -7,6 +7,11 @@ Visual Studio Windows Target Platform Minimum Version
 
 
 For Windows 10. Specifies the minimum version of the OS that is being
 For Windows 10. Specifies the minimum version of the OS that is being
 targeted. For example ``10.0.10240.0``. If the value is not specified, the
 targeted. For example ``10.0.10240.0``. If the value is not specified, the
-value of :variable:`CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION` will be used on
-WindowsStore projects otherwise the target platform minimum version will not
-be specified for the project.
+value of the :variable:`CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION` variable
+will be used on WindowsStore projects.  Otherwise the target platform
+minimum version will not be specified for the project.
+
+.. versionadded:: 3.27
+  This property is initialized by the value of the
+  :variable:`CMAKE_VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION` variable
+  if it is set when a target is created.

+ 6 - 0
Help/release/dev/vs-windows-min-version.rst

@@ -0,0 +1,6 @@
+vs-windows-min-version
+----------------------
+
+* The :variable:`CMAKE_VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION` variable
+  was added to initialize the :prop_tgt:`VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION`
+  target property on all targets when they are created.

+ 12 - 0
Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION.rst

@@ -0,0 +1,12 @@
+CMAKE_VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION
+--------------------------------------------
+
+.. versionadded:: 3.27
+
+Tell :ref:`Visual Studio Generators` to use the given
+Windows Target Platform Minimum Version.
+
+This variable is used to initialize the
+:prop_tgt:`VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION` property on all
+targets when they are created.  See that target property for
+additional information.

+ 1 - 0
Source/cmTarget.cxx

@@ -552,6 +552,7 @@ TargetProperty const StaticTargetProperties[] = {
   { "JOB_POOL_PRECOMPILE_HEADER"_s, IC::CanCompileSources },
   { "JOB_POOL_PRECOMPILE_HEADER"_s, IC::CanCompileSources },
   // -- Visual Studio
   // -- Visual Studio
   { "VS_NO_COMPILE_BATCHING"_s, IC::CanCompileSources },
   { "VS_NO_COMPILE_BATCHING"_s, IC::CanCompileSources },
+  { "VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION"_s, IC::CanCompileSources},
 
 
   // Output location properties
   // Output location properties
   { "ARCHIVE_OUTPUT_DIRECTORY"_s, IC::CanCompileSources },
   { "ARCHIVE_OUTPUT_DIRECTORY"_s, IC::CanCompileSources },