<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <!-- Build configurations -->
  <PropertyGroup>
    <!-- Avoid SDK defining DEBUG/RELEASE/DEBUGOPT/TOOLS itself. -->
    <DisableImplicitConfigurationDefines>true</DisableImplicitConfigurationDefines>

    <!-- Project configurations -->
    <Configurations>Debug;Release;Tools;DebugOpt</Configurations>
    <Platforms>AnyCPU</Platforms>
  </PropertyGroup>
  <!-- Debug configuration: asserts, tools, no optimizations -->
  <PropertyGroup Condition="'$(Configuration)' == 'Debug'">
    <DebugSymbols Condition="'$(DebugSymbols)' == ''">true</DebugSymbols>
    <Optimize Condition="'$(Optimize)' == ''">false</Optimize>
    <RobustToolsBuild Condition="'$(RobustToolsBuild)' == ''">true</RobustToolsBuild>
    <DefineConstants>DEBUG;$(DefineConstants)</DefineConstants>
  </PropertyGroup>
  <!-- DebugOpt configuration: asserts, tools, optimizations -->
  <PropertyGroup Condition="'$(Configuration)' == 'DebugOpt'">
    <DebugSymbols Condition="'$(DebugSymbols)' == ''">true</DebugSymbols>
    <Optimize Condition="'$(Optimize)' == ''">true</Optimize>
    <RobustToolsBuild Condition="'$(RobustToolsBuild)' == ''">true</RobustToolsBuild>
    <DefineConstants>DEBUG;$(DefineConstants)</DefineConstants>
  </PropertyGroup>
  <!-- Tools configuration: no asserts, tools, optimizations -->
  <PropertyGroup Condition="'$(Configuration)' == 'Tools'">
    <DebugSymbols Condition="'$(DebugSymbols)' == ''">true</DebugSymbols>
    <Optimize Condition="'$(Optimize)' == ''">true</Optimize>
    <RobustToolsBuild Condition="'$(RobustToolsBuild)' == ''">true</RobustToolsBuild>
  </PropertyGroup>
  <!-- Release configuration: no asserts, no tools, optimizations -->
  <PropertyGroup Condition="'$(Configuration)' == 'Release'">
    <Optimize Condition="'$(Optimize)' == ''">true</Optimize>
    <RobustToolsBuild Condition="'$(RobustToolsBuild)' == ''">false</RobustToolsBuild>
    <DefineConstants>RELEASE;$(DefineConstants)</DefineConstants>
  </PropertyGroup>
</Project>
