﻿<!--
***********************************************************************************************
Microsoft.Cpp.Default.props

WARNING:  DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
          created a backup copy.  Incorrect changes to this file will make it
          impossible to load or build your projects from the command-line or the IDE.

Copyright (C) Microsoft Corporation. All rights reserved.
***********************************************************************************************
-->

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" TreatAsLocalProperty="Platform">

  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />

  <Import Condition="Exists('$(VCTargetsPath)\ImportBefore\Default')" Project="$(VCTargetsPath)\ImportBefore\Default\*.props" />

  <PropertyGroup>
    <VCTargetsPath10 Condition="'$(VCTargetsPath10)' == '' or ('$(VCTargetsPath10)' != '' and !exists('$(VCTargetsPath10)'))">$(MSBuildProgramFiles32)\MSBuild\Microsoft.Cpp\v4.0\</VCTargetsPath10>
    <VCTargetsPath11 Condition="'$(VCTargetsPath11)' == '' or ('$(VCTargetsPath11)' != '' and !exists('$(VCTargetsPath11)'))">$(MSBuildProgramFiles32)\MSBuild\Microsoft.Cpp\v4.0\V110\</VCTargetsPath11>
    <VCTargetsPath12 Condition="'$(VCTargetsPath12)' == '' or ('$(VCTargetsPath12)' != '' and !exists('$(VCTargetsPath12)'))">$(MSBuildProgramFiles32)\MSBuild\Microsoft.Cpp\v4.0\V120\</VCTargetsPath12>
    <VCTargetsPath14 Condition="'$(VCTargetsPath14)' == '' or ('$(VCTargetsPath14)' != '' and !exists('$(VCTargetsPath14)'))">$(MSBuildProgramFiles32)\MSBuild\Microsoft.Cpp\v4.0\V140\</VCTargetsPath14>
    <VCTargetsPath15 Condition="'$(VCTargetsPath15)' == '' or ('$(VCTargetsPath15)' != '' and !exists('$(VCTargetsPath15)'))">$(VCTargetsPath)</VCTargetsPath15>
  </PropertyGroup>
  
  <PropertyGroup>
    <Platform_Actual Condition="'$(Platform_Actual)' == ''">$(Platform)</Platform_Actual>
    <Platform Condition="'$(Platform)' == ''">Win32</Platform>
    <Platform Condition="'$(Platform)' == 'x86' or '$(Platform)' == 'Any CPU' or '$(Platform)' == 'AnyCPU'">Win32</Platform>

    <!-- Temp fix for Dev12 projects. Remove when Dev12 test projects are fixed -->
    <WinBlueAppStoreProject Condition="'$(ApplicationType)' == '' and '$(AppContainerApplication)' == 'true' and '$(MinimumVisualStudioVersion)' == '12.0' and '$(EnableNewTargetsStructure)' != 'true'">true</WinBlueAppStoreProject>
    <ApplicationType Condition="'$(WinBlueAppStoreProject)' == 'true'">Windows Store</ApplicationType>
    <ApplicationTypeRevision Condition="'$(WinBlueAppStoreProject)' == 'true'">8.1</ApplicationTypeRevision>
    <!-- end of temp fix -->
    
    <!-- ApplicationTypeRevision was changed from 8.2 to 10.0 for Dev14 Store projects - So alias 8.2 to 10.0 for compatibility of older projects -->
    <ApplicationTypeRevision Condition="'$(ApplicationType)' == 'Windows Store' and '$(ApplicationTypeRevision)' == '8.2'">10.0</ApplicationTypeRevision>
    <_ApplicationTypeDefaultPropsPath Condition="'$(ApplicationType)' != ''">$(VCTargetsPath)\Application Type\$(ApplicationType)\Default.props</_ApplicationTypeDefaultPropsPath>
    <_ApplicationTypeRevisionDefaultPropsPath Condition="'$(ApplicationType)' != '' and '$(ApplicationTypeRevision)' != ''">$(VCTargetsPath)\Application Type\$(ApplicationType)\$(ApplicationTypeRevision)\Default.props</_ApplicationTypeRevisionDefaultPropsPath>
    
    <!-- When the Framework Version is <= 3.5, set PlatformToolset to use the 9.0 toolset.
         When the Framework Version is >= 4.0, set PlatformToolset to use the 10.0 toolset.
         If Targetframeworkversion does not exist, then leave the default toolset -->
    <PlatformToolset Condition="'$(PlatformToolset)' == '' and
                                 ('$(TargetFrameworkVersion)' == 'v3.5' or
                                  '$(TargetFrameworkVersion)' == 'v3.0' or
                                  '$(TargetFrameworkVersion)' == 'v2.0')">v90</PlatformToolset>

    <MinSupportedVCTargetsVersion Condition="'$(MinimumVisualStudioVersion)' == '15.0'">v150</MinSupportedVCTargetsVersion>
    <MinSupportedVCTargetsVersion Condition="'$(MinimumVisualStudioVersion)' == '14.0'">v140</MinSupportedVCTargetsVersion>
    <MinSupportedVCTargetsVersion Condition="'$(MinimumVisualStudioVersion)' == '12.0'">v120</MinSupportedVCTargetsVersion>
    <MinSupportedVCTargetsVersion Condition="'$(MinimumVisualStudioVersion)' == '11.0'">v110</MinSupportedVCTargetsVersion>
    <VCTargetsPathActual>$(VCTargetsPath)</VCTargetsPathActual>
  </PropertyGroup>

  <!-- import Application Type default props -->
  <Import Condition="'$(_ApplicationTypeDefaultPropsPath)' != '' and Exists('$(_ApplicationTypeDefaultPropsPath)')" Project="$(_ApplicationTypeDefaultPropsPath)" />
  <Import Condition="'$(_ApplicationTypeRevisionDefaultPropsPath)' != '' and Exists('$(_ApplicationTypeRevisionDefaultPropsPath)')" Project="$(_ApplicationTypeRevisionDefaultPropsPath)" />


  <!-- This is the Cpp defaults settings mapping file. It defines all the project properties values
       (equivalent of System Macros) and also all the ItemDefinitionGroup defaults for each known
       ItemGroup (known as the default of the defaults in the current Project System) -->

  <PropertyGroup>
    <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
    <ConfigurationType Condition="'$(ConfigurationType)' == ''">Application</ConfigurationType>
  </PropertyGroup>

  <PropertyGroup>
    <!-- Short names for platform toolsets (added to project name in Solution Explorer) -->
    <_PlatformToolsetShortNameFor_v140 Condition="'$(_PlatformToolsetShortNameFor_v140)' == ''">Visual Studio 2015</_PlatformToolsetShortNameFor_v140>
    <_PlatformToolsetShortNameFor_v140_xp Condition="'$(_PlatformToolsetShortNameFor_v140_xp)' == ''">Visual Studio 2015 - Windows XP</_PlatformToolsetShortNameFor_v140_xp>
    <_PlatformToolsetShortNameFor_v120 Condition="'$(_PlatformToolsetShortNameFor_v120)' == ''">Visual Studio 2013</_PlatformToolsetShortNameFor_v120>
    <_PlatformToolsetShortNameFor_v120_xp Condition="'$(_PlatformToolsetShortNameFor_v120_xp)' == ''">Visual Studio 2013 - Windows XP</_PlatformToolsetShortNameFor_v120_xp>
    <_PlatformToolsetShortNameFor_v110 Condition="'$(_PlatformToolsetShortNameFor_v110)' == ''">Visual Studio 2012</_PlatformToolsetShortNameFor_v110>
    <_PlatformToolsetShortNameFor_v110_xp Condition="'$(_PlatformToolsetShortNameFor_v110_xp)' == ''">Visual Studio 2012 - Windows XP</_PlatformToolsetShortNameFor_v110_xp>
    <_PlatformToolsetShortNameFor_v100 Condition="'$(_PlatformToolsetShortNameFor_v100)' == ''">Visual Studio 2010</_PlatformToolsetShortNameFor_v100>
    <_PlatformToolsetShortNameFor_v90 Condition="'$(_PlatformToolsetShortNameFor_v90)' == ''">Visual Studio 2008</_PlatformToolsetShortNameFor_v90>

    <!-- Friendly names added to the PlatformToolset in the property pages. -->
    <_PlatformToolsetFriendlyNameFor_v141_clang_c2 Condition="'$(_PlatformToolsetFriendlyNameFor_v141_clang_c2)' == ''">Visual Studio 2017 - Clang with Microsoft CodeGen (v141_clang_c2)</_PlatformToolsetFriendlyNameFor_v141_clang_c2>
    <_PlatformToolsetFriendlyNameFor_v141_xp Condition="'$(_PlatformToolsetFriendlyNameFor_v141_xp)' == ''">Visual Studio 2017 - Windows XP (v141_xp)</_PlatformToolsetFriendlyNameFor_v141_xp>
    <_PlatformToolsetFriendlyNameFor_v141 Condition="'$(_PlatformToolsetFriendlyNameFor_v141)' == ''">Visual Studio 2017 (v141)</_PlatformToolsetFriendlyNameFor_v141>
    <_PlatformToolsetFriendlyNameFor_v140_xp Condition="'$(_PlatformToolsetFriendlyNameFor_v140_xp)' == ''">Visual Studio 2015 - Windows XP (v140_xp)</_PlatformToolsetFriendlyNameFor_v140_xp>
    <_PlatformToolsetFriendlyNameFor_v140 Condition="'$(_PlatformToolsetFriendlyNameFor_v140)' == ''">Visual Studio 2015 (v140)</_PlatformToolsetFriendlyNameFor_v140>
    <_PlatformToolsetFriendlyNameFor_v140_clang_3_7 Condition="'$(_PlatformToolsetFriendlyNameFor_v140_clang_3_7)' == ''">Clang 3.7 with Microsoft CodeGen (v140_clang_3_7)</_PlatformToolsetFriendlyNameFor_v140_clang_3_7>
    <_PlatformToolsetFriendlyNameFor_v140_clang_c2 Condition="'$(_PlatformToolsetFriendlyNameFor_v140_clang_c2)' == ''">Visual Studio 2015 - Clang with Microsoft CodeGen (v140_clang_c2)</_PlatformToolsetFriendlyNameFor_v140_clang_c2>
    <_PlatformToolsetFriendlyNameFor_v120_xp Condition="'$(_PlatformToolsetFriendlyNameFor_v120_xp)' == ''">Visual Studio 2013 - Windows XP (v120_xp)</_PlatformToolsetFriendlyNameFor_v120_xp>
    <_PlatformToolsetFriendlyNameFor_v120 Condition="'$(_PlatformToolsetFriendlyNameFor_v120)' == ''">Visual Studio 2013 (v120)</_PlatformToolsetFriendlyNameFor_v120>
    <_PlatformToolsetFriendlyNameFor_v110_xp Condition="'$(_PlatformToolsetFriendlyNameFor_v110_xp)' == ''">Visual Studio 2012 - Windows XP (v110_xp)</_PlatformToolsetFriendlyNameFor_v110_xp>
    <_PlatformToolsetFriendlyNameFor_v110 Condition="'$(_PlatformToolsetFriendlyNameFor_v110)' == ''">Visual Studio 2012 (v110)</_PlatformToolsetFriendlyNameFor_v110>
    <_PlatformToolsetFriendlyNameFor_v100 Condition="'$(_PlatformToolsetFriendlyNameFor_v100)' == ''">Visual Studio 2010 (v100)</_PlatformToolsetFriendlyNameFor_v100>
    <_PlatformToolsetFriendlyNameFor_v90 Condition="'$(_PlatformToolsetFriendlyNameFor_v90)' == ''">Visual Studio 2008 (v90)</_PlatformToolsetFriendlyNameFor_v90>

    <v141_Installed Condition="Exists('$(VCTargetsPath)\Platforms\Win32\PlatformToolsets\v141\Toolset.props')">true</v141_Installed>
    <v141_xp_Installed Condition="Exists('$(VCTargetsPath)\Platforms\Win32\PlatformToolsets\v141_xp\Toolset.props')">true</v141_xp_Installed>

    <!-- Define the upgrade toolsets for each old toolset -->
    <_UpgradePlatformToolsetFor_v141 Condition="'$(_UpgradePlatformToolsetFor_v141)' == ''">v141</_UpgradePlatformToolsetFor_v141>
    <_UpgradePlatformToolsetFor_v141_xp Condition="'$(_UpgradePlatformToolsetFor_v141_xp)' == ''">v141_xp</_UpgradePlatformToolsetFor_v141_xp>
    <_UpgradePlatformToolsetFor_v140 Condition="'$(_UpgradePlatformToolsetFor_v140)' == '' and '$(v141_Installed)' == 'true'">v141</_UpgradePlatformToolsetFor_v140>
    <_UpgradePlatformToolsetFor_v140_xp Condition="'$(_UpgradePlatformToolsetFor_v140_xp)' == '' and '$(v141_xp_Installed)' == 'true'">v141_xp</_UpgradePlatformToolsetFor_v140_xp>
    <_UpgradePlatformToolsetFor_v120 Condition="'$(_UpgradePlatformToolsetFor_v120)' == '' and '$(v141_Installed)' == 'true'">v141</_UpgradePlatformToolsetFor_v120>
    <_UpgradePlatformToolsetFor_v120_xp Condition="'$(_UpgradePlatformToolsetFor_v120_xp)' == '' and '$(v141_xp_Installed)' == 'true'">v141_xp</_UpgradePlatformToolsetFor_v120_xp>
    <_UpgradePlatformToolsetFor_v110 Condition="'$(_UpgradePlatformToolsetFor_v110)' == '' and '$(v141_Installed)' == 'true'">v141</_UpgradePlatformToolsetFor_v110>
    <_UpgradePlatformToolsetFor_v110_xp Condition="'$(UpgradePlatformToolsetFor_v110_xp)' == '' and '$(v141_xp_Installed)' == 'true'">v141_xp</_UpgradePlatformToolsetFor_v110_xp>
    <_UpgradePlatformToolsetFor_v100 Condition="'$(_UpgradePlatformToolsetFor_v100)' == '' and '$(v141_Installed)' == 'true'">v141</_UpgradePlatformToolsetFor_v100>
    <_UpgradePlatformToolsetFor_v90 Condition="'$(_UpgradePlatformToolsetFor_v90)' == ''  and '$(v141_Installed)' == 'true'">v141</_UpgradePlatformToolsetFor_v90>

    <!-- Short name for platform toolset (appended to project name in Solution Explorer) -->
    <_PlatformToolsetShortNameFor_v110_wp80>Windows Phone 8.0</_PlatformToolsetShortNameFor_v110_wp80>
    <_PlatformToolsetShortNameFor_v120_wp81>Windows Phone 8.1</_PlatformToolsetShortNameFor_v120_wp81>

    <!-- Friendly name for platform toolset (used in project property page) -->
    <_PlatformToolsetFriendlyNameFor_v110_wp80 Condition="'$(_PlatformToolsetFriendlyNameFor_v110_wp80)' == ''">Windows Phone 8.0 (v110_wp80)</_PlatformToolsetFriendlyNameFor_v110_wp80>
    <_PlatformToolsetFriendlyNameFor_v120_wp81 Condition="'$(_PlatformToolsetFriendlyNameFor_v120_wp81)' == ''">Windows Phone 8.1 (v120_wp81)</_PlatformToolsetFriendlyNameFor_v120_wp81>
    
    <!-- Define the TargetAppTypeAndVersion property if the project is an Apptype-project -->
    <TargetOSAndVersion Condition="'$(TargetOSAndVersion)' == '' and '$(ApplicationType)' != '' and  '$(ApplicationTypeRevision)' != ''">$(ApplicationType) $(ApplicationTypeRevision)</TargetOSAndVersion>
  </PropertyGroup>

  <!-- Adding support for platforms being defined by multiple versions of Visual Studio -->
  <!-- This property group checks if the specified platform exists in Dev12 and reverts to Dev11 if it doesn't -->
  <PropertyGroup>
    <_PlatformFolder Condition="'$(ApplicationType)' != '' and '$(ApplicationTypeRevision)' != ''">$(VCTargetsPath)\Application Type\$(ApplicationType)\$(ApplicationTypeRevision)\Platforms\$(Platform)\</_PlatformFolder>
    <_ApplicationTypePlatformFolderFound Condition="'$(_PlatformFolder)' != '' and Exists('$(_PlatformFolder)')">true</_ApplicationTypePlatformFolderFound>
    <_PlatformFolder  Condition="'$(_ApplicationTypePlatformFolderFound)' != 'true'">$(VCTargetsPath)\Platforms\$(Platform)\</_PlatformFolder>
    <_DefaultPlatform>win32</_DefaultPlatform>
  </PropertyGroup>

  <!-- try new name first -->
  <PropertyGroup Condition="Exists('$(_PlatformFolder)\Platform.default.props')">
    <_PlatformDefaultPropsPath>$(_PlatformFolder)\Platform.default.props</_PlatformDefaultPropsPath>
  </PropertyGroup>

  <!-- This property group checks if the specified platform exists in Dev11 -->
  <PropertyGroup Condition="'$(_PlatformDefaultPropsPath)' == '' and Exists('$(VCTargetsPath11)\Platforms\$(Platform)\Microsoft.Cpp.$(Platform).default.props')">
    <_PlatformDefaultPropsPath>$(VCTargetsPath11)\Platforms\$(Platform)\Microsoft.Cpp.$(Platform).default.props</_PlatformDefaultPropsPath>
  </PropertyGroup>

  <!-- This property group checks if the specified platform exists in Dev10 -->
  <PropertyGroup Condition="'$(_PlatformDefaultPropsPath)' == '' and Exists('$(VCTargetsPath10)\Platforms\$(Platform)\Microsoft.Cpp.$(Platform).default.props')">
    <_PlatformDefaultPropsPath>$(VCTargetsPath10)\Platforms\$(Platform)\Microsoft.Cpp.$(Platform).default.props</_PlatformDefaultPropsPath>
  </PropertyGroup>

  <Import Condition="'$(_PlatformDefaultPropsPath)' != '' and Exists('$(_PlatformDefaultPropsPath)')" Project="$(_PlatformDefaultPropsPath)"/>

  <PropertyGroup>
    <ProjectName Condition=" '$(ProjectName)' == '' ">$(MSBuildProjectName)</ProjectName>
    <TargetName Condition=" '$(TargetName)' == '' and '$(AssemblyName)' != ''">$(AssemblyName)</TargetName>
    <ProjectFileName Condition=" '$(ProjectFileName)' == '' ">$(MSBuildProjectFile)</ProjectFileName>
    <ProjectExt Condition=" '$(ProjectExt)' == '' ">$(MSBuildProjectExtension)</ProjectExt>

    <ProjectDir Condition=" '$(ProjectDir)' == '' ">$(MSBuildProjectDirectory)\</ProjectDir>
    <ProjectPath Condition=" '$(ProjectPath)' == '' ">$(ProjectDir)$(ProjectFileName)</ProjectPath>
    <PlatformName Condition=" '$(PlatformName)' == '' ">$(Platform)</PlatformName>
    <SolutionDir Condition="'$(SolutionDir)'==''">$(ProjectDir)</SolutionDir>

    <UserRootDir Condition="'$(UserRootDir)' == '' ">$(LocalAppData)\Microsoft\MSBuild\v4.0</UserRootDir>
    <MultiToolTask Condition="'$(MultiToolTask)' == ''">false</MultiToolTask>

    <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildProjectFullPath);$(MSBuildToolsPath)\Microsoft.Common.targets</MSBuildAllProjects>
    <MSBuildAllProjects Condition="Exists('$(MSBuildProjectFullPath).user')">$(MSBuildAllProjects);$(MSBuildProjectFullPath).user</MSBuildAllProjects>

    <WholeProgramOptimizationDelayImport Condition="'$(WholeProgramOptimization)' != ''">true</WholeProgramOptimizationDelayImport>
    <WholeProgramOptimization Condition="'$(WholeProgramOptimization)' == ''">false</WholeProgramOptimization>
    <WindowsAppContainer Condition="'$(WindowsAppContainer)' == '' and '$(AppContainerApplication)' == 'true'">true</WindowsAppContainer>
    <WindowsAppContainer Condition="'$(WindowsAppContainer)' == ''">false</WindowsAppContainer>
    <CLRSupport Condition="'$(CLRSupport)' == ''">false</CLRSupport>
    <UseOfATL Condition="'$(UseOfATL)' == ''">false</UseOfATL>
    <UseOfMFC Condition="'$(UseOfMFC)' == ''">false</UseOfMFC>
    <SpectreMitigation Condition="'$(SpectreMitigation)' == ''">false</SpectreMitigation>
    <SQLDebugging Condition="'$(SQLDebugging)' == ''">false</SQLDebugging>
    <Attach Condition="'$(Attach)' == ''">false</Attach>
  </PropertyGroup>
  
  <ItemDefinitionGroup>
    <BuildLog>
      <Path>$(IntDir)$(MSBuildProjectName).log</Path>
    </BuildLog>
  </ItemDefinitionGroup>

  <Import Condition="Exists('$(VCTargetsPath)\ImportAfter\Default')" Project="$(VCTargetsPath)\ImportAfter\Default\*.props" />  
</Project>
