• 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.22621.0</WindowsTargetPlatformVersion>
67    <WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
68  </PropertyGroup>
69  <PropertyGroup Condition="'$(Platform)'=='ARM64'">
70    <WindowsTargetPlatformVersion>10.0.22621.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      <!-- Set the C/C++ versions supported. -->
100      <LanguageStandard>stdcpp17</LanguageStandard>
101      <LanguageStandard_C>stdc11</LanguageStandard_C>
102    </ClCompile>
103    <ResourceCompile>
104      <Culture>0x0409</Culture>
105    </ResourceCompile>
106    <Link>
107      <SuppressStartupBanner>true</SuppressStartupBanner>
108      <RandomizedBaseAddress>true</RandomizedBaseAddress>
109    </Link>
110  </ItemDefinitionGroup>
111  <!-- Options that are common to all 'Release' configurations for *all* projects. -->
112  <ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
113    <Midl>
114      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
115    </Midl>
116    <ClCompile>
117      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
118      <StringPooling>true</StringPooling>
119      <WholeProgramOptimization>true</WholeProgramOptimization>
120      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
121    </ClCompile>
122    <ResourceCompile>
123      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
124    </ResourceCompile>
125    <Link>
126      <EnableCOMDATFolding>true</EnableCOMDATFolding>
127      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
128    </Link>
129  </ItemDefinitionGroup>
130  <!-- Options that are common to all 'Debug' configurations for *all* projects. -->
131  <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
132    <Midl>
133      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
134    </Midl>
135    <ClCompile>
136      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
137      <Optimization>Disabled</Optimization>
138      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
139      <BufferSecurityCheck>true</BufferSecurityCheck>
140    </ClCompile>
141    <ResourceCompile>
142      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
143    </ResourceCompile>
144    <Link>
145      <GenerateDebugInformation>true</GenerateDebugInformation>
146      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
147    </Link>
148  </ItemDefinitionGroup>
149  <!-- Options that are common to all 32-bit configurations for *all* projects. -->
150  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
151    <Midl>
152      <TargetEnvironment>Win32</TargetEnvironment>
153    </Midl>
154    <ClCompile>
155      <PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
156    </ClCompile>
157    <Link>
158      <TargetMachine>MachineX86</TargetMachine>
159    </Link>
160  </ItemDefinitionGroup>
161  <!-- Options that are common to all 64-bit configurations for *all* projects. -->
162  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
163    <Midl>
164      <TargetEnvironment>X64</TargetEnvironment>
165    </Midl>
166    <ClCompile>
167      <PreprocessorDefinitions>WIN64;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
168    </ClCompile>
169    <Link>
170      <TargetMachine>MachineX64</TargetMachine>
171    </Link>
172  </ItemDefinitionGroup>
173  <!-- Options that are common to all ARM 32-bit configurations for *all* projects. -->
174  <ItemDefinitionGroup Condition="'$(Platform)'=='ARM'">
175    <Midl>
176      <TargetEnvironment>ARM</TargetEnvironment>
177    </Midl>
178    <ClCompile>
179      <PreprocessorDefinitions>ARM;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
180    </ClCompile>
181    <Link>
182      <TargetMachine>MachineARM</TargetMachine>
183      <!-- The ARM64 Desktop SDK doesn't include this by default -->
184      <AdditionalDependencies>kernel32.lib;%(AdditionalDependencies)</AdditionalDependencies>
185      <!-- Note: This needs to match the same version as WindowsTargetPlatformVersion for ARM -->
186      <AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22621.0\um\arm</AdditionalLibraryDirectories>
187    </Link>
188  </ItemDefinitionGroup>
189  <!-- Options that are common to all ARM 64-bit configurations for *all* projects. -->
190  <ItemDefinitionGroup Condition="'$(Platform)'=='ARM64'">
191    <Midl>
192      <TargetEnvironment>ARM64</TargetEnvironment>
193    </Midl>
194    <ClCompile>
195      <PreprocessorDefinitions>ARM64;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
196    </ClCompile>
197    <Link>
198      <TargetMachine>MachineARM64</TargetMachine>
199      <!-- The ARM64 Desktop SDK doesn't include this by default -->
200      <AdditionalDependencies>kernel32.lib;%(AdditionalDependencies)</AdditionalDependencies>
201      <!-- Note: This needs to match the same version as WindowsTargetPlatformVersion for ARM64 -->
202      <AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22621.0\um\arm64</AdditionalLibraryDirectories>
203    </Link>
204  </ItemDefinitionGroup>
205</Project>