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