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>