<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net472</TargetFramework>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
    <Optimize>true</Optimize>
    <UseVSHostingProcess>false</UseVSHostingProcess>
    <OutputPath>../bin</OutputPath>
    <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
    <LangVersion>7.3</LangVersion>
    <DebugSymbols>true</DebugSymbols>
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
    <PlatformTarget>AnyCPU</PlatformTarget>
    <ExternalConsole>false</ExternalConsole>
    <EnableDefaultCompileItems>false</EnableDefaultCompileItems>
    <CodeAnalysisRuleSet>..\OpenRA.ruleset</CodeAnalysisRuleSet>
    <Configurations>Release;Debug</Configurations>
  </PropertyGroup>
  <ItemGroup>
    <!-- Work around an issue where Rider does not detect files in the project root using the default glob -->
    <Compile Include="**/*.cs" Exclude="$(DefaultItemExcludes)" />
  </ItemGroup>
  <PropertyGroup Condition="'$(Configuration)'=='Debug'">
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <Optimize>false</Optimize>
  </PropertyGroup>
  <PropertyGroup Condition="'$(TargetPlatform)' == 'win-x86'">
    <Prefer32bit>true</Prefer32bit>
  </PropertyGroup>
  <ItemGroup>
    <ProjectReference Include="..\OpenRA.Game\OpenRA.Game.csproj" />
    <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" />
    <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="All" />
    <AdditionalFiles Include="../stylecop.json" />
  </ItemGroup>
  <Target Name="DisableAnalyzers" BeforeTargets="CoreCompile" Condition="'$(Configuration)'=='Release'">
    <!-- Disable code style analysis on Release builds to improve compile-time performance -->
    <ItemGroup Condition="'$(Configuration)'=='Release'">
      <Analyzer Remove="@(Analyzer)" />
    </ItemGroup>
  </Target>
</Project>
