<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <SolutionDir Condition="'$(SolutionDir)'==''">..\..\</SolutionDir>
  </PropertyGroup>

  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

  <PropertyGroup>
    <!-- Allow any version of VS and Windows SDK -->
    <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
    <TargetPlatformVersion>10.0.14393.0</TargetPlatformVersion>

    <CharacterSet>MultiByte</CharacterSet>

    <OutDir>$(SolutionDir)bin\</OutDir>
    <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)_$(Platform)\</IntDir>
    <TargetName>$(ProjectName)</TargetName>
    <ShowAllFiles>true</ShowAllFiles>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)'=='Debug'">
    <UseDebugLibraries>true</UseDebugLibraries>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)'=='Release'">
    <UseDebugLibraries>false</UseDebugLibraries>
    <WholeProgramOptimization>true</WholeProgramOptimization>
  </PropertyGroup>

  <ItemDefinitionGroup>
    <ClCompile>
      <DisableSpecificWarnings>4068;4091;4100;4132;4200;4201;4204;4206;4221;4244;4245;%(DisableSpecificWarnings)</DisableSpecificWarnings>
      <!-- Warnings:
             C4068: unknown pragma
             C4091: 'keyword': ignored on left of 'type' when no variable is declared
             C4100: 'identifier': unreferenced formal parameter
             C4132: 'identifier': const object should be initialized
             C4200: nonstandard extension used: zero-sized array in struct/union
             C4201: nonstandard extension used: nameless struct/union
             C4204: nonstandard extension used: non-constant aggregate initializer
             C4206: nonstandard extension used: translation unit is empty
             C4221: nonstandard extension used: 'identifier': cannot be initialized using address of automatic variable 'identifier'
             C4244: 'conversion_type': conversion from 'type1' to 'type2', possible loss of data
             C4245: 'conversion_type': conversion from 'type1' to 'type2', signed/unsigned mismatch
      -->
      <WarningLevel>Level4</WarningLevel>
      <PreprocessorDefinitions>NO_RCT2;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;_USE_MATH_DEFINES;CURL_STATICLIB;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;ZIP_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
      <MultiProcessorCompilation>true</MultiProcessorCompilation>
      <TreatWarningAsError>true</TreatWarningAsError>
      <AdditionalOptions>/utf-8 /std:c++latest</AdditionalOptions>
    </ClCompile>
    <Link>
      <AdditionalDependencies>imm32.lib;version.lib;winmm.lib;crypt32.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <AdditionalDependencies Condition="'$(Platform)'=='Win32'">openrct2-libs-vs2015-x86.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <AdditionalDependencies Condition="'$(Platform)'=='x64'">openrct2-libs-vs2015-x64.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <AdditionalOptions>/OPT:NOLBR /ignore:4099 %(AdditionalOptions)</AdditionalOptions>
    </Link>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
    <ClCompile>
      <Optimization>Disabled</Optimization>
      <SDLCheck>true</SDLCheck>
      <PreprocessorDefinitions>DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <MinimalRebuild>false</MinimalRebuild>
    </ClCompile>
    <Link>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <LinkTimeCodeGeneration>UseFastLinkTimeCodeGeneration</LinkTimeCodeGeneration>
    </Link>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
    <ClCompile>
      <Optimization>Full</Optimization>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <SDLCheck />
      <OmitFramePointers />
      <BufferSecurityCheck>false</BufferSecurityCheck>
      <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
    </ClCompile>
    <Link>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <OptimizeReferences>true</OptimizeReferences>
    </Link>
  </ItemDefinitionGroup>

  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

  <PropertyGroup>
    <IncludePath>$(SolutionDir)src;$(SolutionDir)lib\include;$(SolutionDir)lib\include\breakpad;$(SolutionDir)lib\include\libspeex;$(SolutionDir)lib\include\sdl;$(SolutionDir)lib\include\jansson;$(SolutionDir)lib\include\sdl_ttf;$(SolutionDir)lib\include\libpng;$(SolutionDir)lib\include\zlib;$(SolutionDir)lib\include\libzip;$(IncludePath)</IncludePath>
    <LibraryPath>$(SolutionDir)lib;$(LibraryPath)</LibraryPath>
    <LinkIncremental />
  </PropertyGroup>

  <ItemDefinitionGroup>
    <Manifest>
      <EnableDpiAwareness>PerMonitorHighDPIAware</EnableDpiAwareness>
    </Manifest>
  </ItemDefinitionGroup>
</Project>
