1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->
3<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
4  <!-- This file is used to set default configuration options for all non-UWP Visual Studio projects. -->
5  <!-- These are the default project configurations for building. -->
6  <ItemGroup Label="ProjectConfigurations">
7    <ProjectConfiguration Include="Debug|Win32">
8      <Configuration>Debug</Configuration>
9      <Platform>Win32</Platform>
10    </ProjectConfiguration>
11    <ProjectConfiguration Include="Debug|x64">
12      <Configuration>Debug</Configuration>
13      <Platform>x64</Platform>
14    </ProjectConfiguration>
15    <ProjectConfiguration Include="Debug|ARM">
16      <Configuration>Debug</Configuration>
17      <Platform>ARM</Platform>
18    </ProjectConfiguration>
19    <ProjectConfiguration Include="Debug|ARM64">
20      <Configuration>Debug</Configuration>
21      <Platform>ARM64</Platform>
22    </ProjectConfiguration>
23    <ProjectConfiguration Include="Release|Win32">
24      <Configuration>Release</Configuration>
25      <Platform>Win32</Platform>
26    </ProjectConfiguration>
27    <ProjectConfiguration Include="Release|x64">
28      <Configuration>Release</Configuration>
29      <Platform>x64</Platform>
30    </ProjectConfiguration>
31    <ProjectConfiguration Include="Release|ARM">
32      <Configuration>Release</Configuration>
33      <Platform>ARM</Platform>
34    </ProjectConfiguration>
35    <ProjectConfiguration Include="Release|ARM64">
36      <Configuration>Release</Configuration>
37      <Platform>ARM64</Platform>
38    </ProjectConfiguration>
39  </ItemGroup>
40  <!-- The following import will set the PlatformToolset configuration. -->
41  <Import Project="Build.Windows.PlatformToolset.props" />
42  <!-- The following PropertyGroups are used to set the binary and lib output locations -->
43  <PropertyGroup Condition="'$(Platform)'=='Win32'">
44    <IcuBinOutputDir>bin</IcuBinOutputDir>
45    <IcuLibOutputDir>lib</IcuLibOutputDir>
46  </PropertyGroup>
47  <PropertyGroup Condition="'$(Platform)'=='x64'">
48    <IcuBinOutputDir>bin64</IcuBinOutputDir>
49    <IcuLibOutputDir>lib64</IcuLibOutputDir>
50  </PropertyGroup>
51  <PropertyGroup Condition="'$(Platform)'=='ARM'">
52    <IcuBinOutputDir>binARM</IcuBinOutputDir>
53    <IcuLibOutputDir>libARM</IcuLibOutputDir>
54  </PropertyGroup>
55  <PropertyGroup Condition="'$(Platform)'=='ARM64'">
56    <IcuBinOutputDir>binARM64</IcuBinOutputDir>
57    <IcuLibOutputDir>libARM64</IcuLibOutputDir>
58  </PropertyGroup>
59  <!-- Desktop ARM/ARM64 support requires a different version of the Windows SDK -->
60  <!--
61      Note: This version must match the version below in the ARM64 section for AdditionalLibraryDirectories
62  -->
63  <PropertyGroup Condition="'$(Platform)'=='ARM'">
64    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
65    <WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
66  </PropertyGroup>
67  <PropertyGroup Condition="'$(Platform)'=='ARM64'">
68    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
69    <WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
70  </PropertyGroup>
71  <PropertyGroup>
72    <!-- We need to explicitly set the target version to Windows 7. -->
73    <Win32_WinNTVersion>0x0601</Win32_WinNTVersion>
74  </PropertyGroup>
75  <!-- Options that are common to *all* configurations for *all* projects. -->
76  <ItemDefinitionGroup>
77    <Midl>
78      <MkTypLibCompatible>true</MkTypLibCompatible>
79      <SuppressStartupBanner>true</SuppressStartupBanner>
80    </Midl>
81    <ClCompile>
82      <!-- Note: These preprocessor defines are for *all* configurations for *all* projects.  -->
83      <!-- Note: See ticket #5750 for the macro '_CRT_SECURE_NO_DEPRECATE'. -->
84      <PreprocessorDefinitions>
85        WINVER=$(Win32_WinNTVersion);
86        _WIN32_WINNT=$(Win32_WinNTVersion);
87        _CRT_SECURE_NO_DEPRECATE;
88        %(PreprocessorDefinitions)
89      </PreprocessorDefinitions>
90      <!-- We always want to treat wchar_t as a "real" C++ type, instead of a typedef. -->
91      <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
92      <SuppressStartupBanner>true</SuppressStartupBanner>
93      <!-- Set the source encoding and runtime encoding to UTF-8 by default. -->
94      <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
95      <!-- Enable parallel compilation for faster builds. -->
96      <MultiProcessorCompilation>true</MultiProcessorCompilation>
97    </ClCompile>
98    <ResourceCompile>
99      <Culture>0x0409</Culture>
100    </ResourceCompile>
101    <Link>
102      <SuppressStartupBanner>true</SuppressStartupBanner>
103      <RandomizedBaseAddress>true</RandomizedBaseAddress>
104    </Link>
105  </ItemDefinitionGroup>
106  <!-- Options that are common to all 'Release' configurations for *all* projects. -->
107  <ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
108    <Midl>
109      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
110    </Midl>
111    <ClCompile>
112      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
113      <StringPooling>true</StringPooling>
114      <WholeProgramOptimization>true</WholeProgramOptimization>
115      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
116    </ClCompile>
117    <ResourceCompile>
118      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
119    </ResourceCompile>
120    <Link>
121      <EnableCOMDATFolding>true</EnableCOMDATFolding>
122      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
123    </Link>
124  </ItemDefinitionGroup>
125  <!-- Options that are common to all 'Debug' configurations for *all* projects. -->
126  <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
127    <Midl>
128      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
129    </Midl>
130    <ClCompile>
131      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
132      <Optimization>Disabled</Optimization>
133      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
134      <BufferSecurityCheck>true</BufferSecurityCheck>
135    </ClCompile>
136    <ResourceCompile>
137      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
138    </ResourceCompile>
139    <Link>
140      <GenerateDebugInformation>true</GenerateDebugInformation>
141      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
142    </Link>
143  </ItemDefinitionGroup>
144  <!-- Options that are common to all 32-bit configurations for *all* projects. -->
145  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
146    <Midl>
147      <TargetEnvironment>Win32</TargetEnvironment>
148    </Midl>
149    <ClCompile>
150      <PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
151    </ClCompile>
152    <Link>
153      <TargetMachine>MachineX86</TargetMachine>
154    </Link>
155  </ItemDefinitionGroup>
156  <!-- Options that are common to all 64-bit configurations for *all* projects. -->
157  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
158    <Midl>
159      <TargetEnvironment>X64</TargetEnvironment>
160    </Midl>
161    <ClCompile>
162      <PreprocessorDefinitions>WIN64;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
163    </ClCompile>
164    <Link>
165      <TargetMachine>MachineX64</TargetMachine>
166    </Link>
167  </ItemDefinitionGroup>
168  <!-- Options that are common to all ARM 32-bit configurations for *all* projects. -->
169  <ItemDefinitionGroup Condition="'$(Platform)'=='ARM'">
170    <Midl>
171      <TargetEnvironment>ARM</TargetEnvironment>
172    </Midl>
173    <ClCompile>
174      <PreprocessorDefinitions>ARM;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
175    </ClCompile>
176    <Link>
177      <TargetMachine>MachineARM</TargetMachine>
178      <!-- The ARM64 Desktop SDK doesn't include this by default -->
179      <AdditionalDependencies>kernel32.lib;%(AdditionalDependencies)</AdditionalDependencies>
180      <!-- Note: This needs to match the same version as WindowsTargetPlatformVersion for ARM -->
181      <AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.16299.0\um\arm</AdditionalLibraryDirectories>
182    </Link>
183  </ItemDefinitionGroup>
184  <!-- Options that are common to all ARM 64-bit configurations for *all* projects. -->
185  <ItemDefinitionGroup Condition="'$(Platform)'=='ARM64'">
186    <Midl>
187      <TargetEnvironment>ARM64</TargetEnvironment>
188    </Midl>
189    <ClCompile>
190      <PreprocessorDefinitions>ARM64;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
191    </ClCompile>
192    <Link>
193      <TargetMachine>MachineARM64</TargetMachine>
194      <!-- The ARM64 Desktop SDK doesn't include this by default -->
195      <AdditionalDependencies>kernel32.lib;%(AdditionalDependencies)</AdditionalDependencies>
196      <!-- Note: This needs to match the same version as WindowsTargetPlatformVersion for ARM64 -->
197      <AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.16299.0\um\arm64</AdditionalLibraryDirectories>
198    </Link>
199  </ItemDefinitionGroup>
200</Project>