Build.Windows.ProjectConfiguration.props   [plain text]


<?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 default configuration options for all non-UWP Visual Studio projects. -->
  <!-- These are the default project configurations for building. -->
  <ItemGroup Label="ProjectConfigurations">
    <ProjectConfiguration Include="Debug|Win32">
      <Configuration>Debug</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Debug|x64">
      <Configuration>Debug</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Debug|ARM">
      <Configuration>Debug</Configuration>
      <Platform>ARM</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Debug|ARM64">
      <Configuration>Debug</Configuration>
      <Platform>ARM64</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|Win32">
      <Configuration>Release</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|x64">
      <Configuration>Release</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|ARM">
      <Configuration>Release</Configuration>
      <Platform>ARM</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|ARM64">
      <Configuration>Release</Configuration>
      <Platform>ARM64</Platform>
    </ProjectConfiguration>
  </ItemGroup>
  <!-- The following import will set the PlatformToolset configuration. -->
  <Import Project="Build.Windows.PlatformToolset.props" />
  <!-- The following PropertyGroups are used to set the binary and lib output locations -->
  <PropertyGroup Condition="'$(Platform)'=='Win32'">
    <IcuBinOutputDir>bin</IcuBinOutputDir>
    <IcuLibOutputDir>lib</IcuLibOutputDir>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Platform)'=='x64'">
    <IcuBinOutputDir>bin64</IcuBinOutputDir>
    <IcuLibOutputDir>lib64</IcuLibOutputDir>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Platform)'=='ARM'">
    <IcuBinOutputDir>binARM</IcuBinOutputDir>
    <IcuLibOutputDir>libARM</IcuLibOutputDir>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Platform)'=='ARM64'">
    <IcuBinOutputDir>binARM64</IcuBinOutputDir>
    <IcuLibOutputDir>libARM64</IcuLibOutputDir>
  </PropertyGroup>
  <!-- This is the default SDK target. -->
  <PropertyGroup>
    <!-- Note that the Windows 8.1 SDK is backwards compatible down-level to Windows 7, so
         setting this to 8.1 does not actually imply targeting Windows 8.1. -->
    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
  </PropertyGroup>
  <!-- Desktop ARM/ARM64 support requires a newer version of the Windows SDK than 8.1 -->
  <!--
      Note: This version must match the version below in the ARM64 section for AdditionalLibraryDirectories
  -->
  <PropertyGroup Condition="'$(Platform)'=='ARM'">
    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
    <WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Platform)'=='ARM64'">
    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
    <WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
  </PropertyGroup>
  <PropertyGroup>
    <!-- We need to explicitly set the target version to Windows 7. -->
    <Win32_WinNTVersion>0x0601</Win32_WinNTVersion>
  </PropertyGroup>
  <!-- Options that are common to *all* configurations for *all* projects. -->
  <ItemDefinitionGroup>
    <Midl>
      <MkTypLibCompatible>true</MkTypLibCompatible>
      <SuppressStartupBanner>true</SuppressStartupBanner>
    </Midl>
    <ClCompile>
      <!-- Note: These preprocessor defines are for *all* configurations for *all* projects.  -->
      <!-- Note: See ticket #5750 for the macro '_CRT_SECURE_NO_DEPRECATE'. -->
      <PreprocessorDefinitions>
        WINVER=$(Win32_WinNTVersion);
        _WIN32_WINNT=$(Win32_WinNTVersion);
        _CRT_SECURE_NO_DEPRECATE;
        %(PreprocessorDefinitions)
      </PreprocessorDefinitions>
      <!-- We always want to treat wchar_t as a "real" C++ type, instead of a typedef. -->
      <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
      <SuppressStartupBanner>true</SuppressStartupBanner>
      <!-- Set the source encoding and runtime encoding to UTF-8 by default. -->
      <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
      <!-- Enable parallel compilation for faster builds. -->
      <MultiProcessorCompilation>true</MultiProcessorCompilation>
    </ClCompile>
    <ResourceCompile>
      <Culture>0x0409</Culture>
    </ResourceCompile>
    <Link>
      <SuppressStartupBanner>true</SuppressStartupBanner>
      <RandomizedBaseAddress>true</RandomizedBaseAddress>
    </Link>
  </ItemDefinitionGroup>
  <!-- Options that are common to all 'Release' configurations for *all* projects. -->
  <ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
    <Midl>
      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </Midl>
    <ClCompile>
      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <StringPooling>true</StringPooling>
      <WholeProgramOptimization>true</WholeProgramOptimization>
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
    </ClCompile>
    <ResourceCompile>
      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ResourceCompile>
    <Link>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
    </Link>
  </ItemDefinitionGroup>
  <!-- Options that are common to all 'Debug' configurations for *all* projects. -->
  <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
    <Midl>
      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </Midl>
    <ClCompile>
      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <Optimization>Disabled</Optimization>
      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
      <BufferSecurityCheck>true</BufferSecurityCheck>
    </ClCompile>
    <ResourceCompile>
      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ResourceCompile>
    <Link>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
    </Link>
  </ItemDefinitionGroup>
  <!-- Options that are common to all 32-bit configurations for *all* projects. -->
  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
    <Midl>
      <TargetEnvironment>Win32</TargetEnvironment>
    </Midl>
    <ClCompile>
      <PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
    <Link>
      <TargetMachine>MachineX86</TargetMachine>
    </Link>
  </ItemDefinitionGroup>
  <!-- Options that are common to all 64-bit configurations for *all* projects. -->
  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
    <Midl>
      <TargetEnvironment>X64</TargetEnvironment>
    </Midl>
    <ClCompile>
      <PreprocessorDefinitions>WIN64;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
    <Link>
      <TargetMachine>MachineX64</TargetMachine>
    </Link>
  </ItemDefinitionGroup>
  <!-- Options that are common to all ARM 32-bit configurations for *all* projects. -->
  <ItemDefinitionGroup Condition="'$(Platform)'=='ARM'">
    <Midl>
      <TargetEnvironment>ARM</TargetEnvironment>
    </Midl>
    <ClCompile>
      <PreprocessorDefinitions>ARM;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
    <Link>
      <TargetMachine>MachineARM</TargetMachine>
      <!-- The ARM64 Desktop SDK doesn't include this by default -->
      <AdditionalDependencies>kernel32.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <!-- Note: This needs to match the same version as WindowsTargetPlatformVersion for ARM -->
      <AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.16299.0\um\arm</AdditionalLibraryDirectories>
    </Link>
  </ItemDefinitionGroup>
  <!-- Options that are common to all ARM 64-bit configurations for *all* projects. -->
  <ItemDefinitionGroup Condition="'$(Platform)'=='ARM64'">
    <Midl>
      <TargetEnvironment>ARM64</TargetEnvironment>
    </Midl>
    <ClCompile>
      <PreprocessorDefinitions>ARM64;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
    <Link>
      <TargetMachine>MachineARM64</TargetMachine>
      <!-- The ARM64 Desktop SDK doesn't include this by default -->
      <AdditionalDependencies>kernel32.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <!-- Note: This needs to match the same version as WindowsTargetPlatformVersion for ARM64 -->
      <AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.16299.0\um\arm64</AdditionalLibraryDirectories>
    </Link>
  </ItemDefinitionGroup>
</Project>