]> granicus.if.org Git - icu/commitdiff
ICU-20238 Autodetect Visual Studio version, and autodetect the installed Windows...
authorJeff Genovy <29107334+jefgen@users.noreply.github.com>
Thu, 25 Oct 2018 02:28:43 +0000 (19:28 -0700)
committerJeff Genovy <29107334+jefgen@users.noreply.github.com>
Fri, 9 Nov 2018 00:46:36 +0000 (16:46 -0800)
icu4c/source/allinone/Build.Windows.PlatformToolset.props [new file with mode: 0644]
icu4c/source/allinone/Build.Windows.ProjectConfiguration.props
icu4c/source/allinone/Build.Windows.UWP.ProjectConfiguration.props

diff --git a/icu4c/source/allinone/Build.Windows.PlatformToolset.props b/icu4c/source/allinone/Build.Windows.PlatformToolset.props
new file mode 100644 (file)
index 0000000..778ee26
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!-- This file is used to set the PlatformToolset configuration option for all UWP projects. -->
+  
+  <!-- Automatic PlatformToolset version selection. -->
+  <!-- If there is no DefaultPlatformToolset set, we will detect the version based on version of the build tools. -->
+  <PropertyGroup>
+    <BuildToolVersion>$(VisualStudioVersion)</BuildToolVersion>
+    <BuildToolVersion Condition="'$(BuildToolVersion)'==''">$(MSBuildToolsVersion)</BuildToolVersion>
+    <!-- Note: v140 is the Visual Studio 2015 toolset. v141 is the Visual Studio 2017 toolset. -->
+    <AutoDetectedPlatformToolset Condition="'$(BuildToolVersion)'=='14.0'">v140</AutoDetectedPlatformToolset>
+    <AutoDetectedPlatformToolset Condition="'$(BuildToolVersion)'=='15.0'">v141</AutoDetectedPlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="EmptyDefaultPlatformToolset">
+    <DefaultPlatformToolset Condition=" '$(DefaultPlatformToolset)' == '' ">$(AutoDetectedPlatformToolset)</DefaultPlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="PlatformToolset">
+    <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+  </PropertyGroup>
+</Project>
index 0e74cb4ff451b8dcaff57b96e75def93b4b8b358..3557e9c7354e45d4acc020de497899b7c60bb5fc 100644 (file)
       <Platform>x64</Platform>
     </ProjectConfiguration>
   </ItemGroup>
-  <PropertyGroup>
-    <!-- This is the version of the MSVC tool-set to use. -->
-    <!-- v140 is the Visual Studio 2015 toolset. -->
-    <!-- v141 is the Visual Studio 2017 toolset. -->
-    <PlatformToolset>v141</PlatformToolset>
-  </PropertyGroup>
+  <!-- The following import will set the PlatformToolset configuration. -->
+  <Import Project="Build.Windows.PlatformToolset.props" />
   <PropertyGroup>
     <!-- This is the default SDK target. -->
     <!-- Note that the Windows 8.1 SDK is backwards compatible down-level to Windows 7, so
index 5988c73be38fd91970800f60ba5a9b556c6eb7a1..5dffa96c6cdab80f6fa7f9a1a08611f34c89453e 100644 (file)
@@ -3,21 +3,27 @@
 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <!-- This file is used to set common configuration options for all *_uwp projects. -->
   <PropertyGroup>
-    <!-- If not already set, use this version of the Win10 SDK -->
-    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
-    <!-- If not already set, set the minimum Win10 SDK version to TH1/RTM -->
-    <WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>
-    
     <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
     <AppContainerApplication>true</AppContainerApplication>
     <ApplicationType>Windows Store</ApplicationType>
     <ApplicationTypeRevision>10.0</ApplicationTypeRevision>
   </PropertyGroup>
-  <PropertyGroup>
-    <!-- This is the version of the MSVC tool-set to use. -->
-    <!-- v141 is the Visual Studio 2017 toolset. -->
-    <PlatformToolset>v141</PlatformToolset>
+  <!-- If not already set, then we will default to using the latest installed Windows 10 SDK version. -->
+  <PropertyGroup Condition="'$(WindowsTargetPlatformVersion)'==''">
+    <!-- Detect the SDK version. -->
+    <WindowsSdkInstallFolder_10 Condition="'$(WindowsSdkInstallFolder_10)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v10.0@InstallationFolder)</WindowsSdkInstallFolder_10>
+    <WindowsSdkInstallFolder_10 Condition="'$(WindowsSdkInstallFolder_10)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v10.0@InstallationFolder)</WindowsSdkInstallFolder_10>
+    <WindowsTargetPlatformVersion_10 Condition="'$(WindowsTargetPlatformVersion_10)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v10.0@ProductVersion)</WindowsTargetPlatformVersion_10>
+    <WindowsTargetPlatformVersion_10 Condition="'$(WindowsTargetPlatformVersion_10)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v10.0@ProductVersion)</WindowsTargetPlatformVersion_10>
+    <!-- Sometimes the version in the registry has the '.0' suffix, and sometimes it doesn't. Check and add it. -->
+    <WindowsTargetPlatformVersion_10 Condition="'$(WindowsTargetPlatformVersion_10)' != '' and !$(WindowsTargetPlatformVersion_10.EndsWith('.0'))">$(WindowsTargetPlatformVersion_10).0</WindowsTargetPlatformVersion_10>
+    <!-- Set the default. -->
+    <WindowsTargetPlatformVersion>$(WindowsTargetPlatformVersion_10)</WindowsTargetPlatformVersion>
+    <!-- Set the minimum Win10 SDK version to TH1/RTM. -->
+    <WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>
   </PropertyGroup>
+  <!-- The following import will set the PlatformToolset configuration. -->
+  <Import Project="..\allinone\Build.Windows.PlatformToolset.props" />
   <ItemDefinitionGroup>
     <Midl>
       <PreprocessorDefinitions>