<Project>

  <PropertyGroup>
    <!--
        - build.ps1
        - .github/workflows/build.yml
        - dnSpy/dnSpy/app.config (supportedRuntime, .NET Framework only)
    NOTE: Update the ABOVE files when TargetFrameworks is updated -->
    <TargetFrameworks>net472;netcoreapp3.1</TargetFrameworks>
    <IsDotNetFramework>false</IsDotNetFramework>
    <IsDotNetCore>false</IsDotNetCore>
    <IsSelfContainedDotNetCore>false</IsSelfContainedDotNetCore>
    <IsDotNetFramework Condition=" !$(TargetFramework.StartsWith(netcoreapp)) ">true</IsDotNetFramework>
    <IsDotNetCore Condition=" $(TargetFramework.StartsWith(netcoreapp)) ">true</IsDotNetCore>
    <IsSelfContainedDotNetCore Condition=" '$(IsDotNetCore)' == 'true' ">true</IsSelfContainedDotNetCore>
    <Features>strict;nullablePublicOnly</Features>
    <LangVersion>8.0</LangVersion>
    <LangVersion Condition=" $(MSBuildProjectFile.EndsWith('.vbproj')) " >latest</LangVersion>
    <NeutralLanguage>en</NeutralLanguage>
    <AppDesignerFolderContentsVisibleOnlyInShowAllFiles>false</AppDesignerFolderContentsVisibleOnlyInShowAllFiles>
    <!-- Make sure we don't have to publish each extension to get all their refs -->
    <CopyLocalLockFileAssemblies Condition=" '$(IsDotNetCore)' == 'true' ">true</CopyLocalLockFileAssemblies>
    <!-- If this gets updated, also update .github/workflows/build.yml and build.ps1 -->
    <DnSpyRuntimeIdentifiers>win-x86;win-x64</DnSpyRuntimeIdentifiers>
    <SatelliteResourceLanguages>cs;de;es;es-ES;fa;fr;hu;it;pt-BR;pt-PT;ru;tr;uk;zh-CN</SatelliteResourceLanguages>

    <!-- Update app.config whenever this value changes -->
    <DnSpyAssemblyVersion>6.1.4.0</DnSpyAssemblyVersion>
    <!-- This is shown in the title bar -->
    <DnSpyAssemblyInformationalVersion>v6.1.4</DnSpyAssemblyInformationalVersion>
    <DnSpyAssemblyCopyright>Copyright (C) 2014-2019 de4dot@gmail.com</DnSpyAssemblyCopyright>

    <!-- AD0001: buggy Roslyn analyzer(s) crash, disable that warning -->
    <NoWarn>NU1701;AD0001</NoWarn>

    <!-- Update app.config whenever some of these versions change (eg. dnlib version) -->
    <DiaSymReaderVersion>1.7.0</DiaSymReaderVersion>
    <DnlibVersion>3.3.1</DnlibVersion>
    <IcedVersion>1.5.0</IcedVersion>
    <MSBuildNuGetVersion>16.4.0</MSBuildNuGetVersion>
    <MSDiagRuntimeVersion>1.1.61812</MSDiagRuntimeVersion>
    <MSVSCompositionVersion>16.4.11</MSVSCompositionVersion>
    <MSVSIntellisenseVersion>15.5.27130</MSVSIntellisenseVersion>
    <MSVSTextVersion>15.5.27130</MSVSTextVersion>
    <NewtonsoftJsonVersion>12.0.3</NewtonsoftJsonVersion>
    <OokiiDialogsVersion>1.0.0</OokiiDialogsVersion>
    <RoslynVersion>2.10.0</RoslynVersion>
    <SCCompositionVersion>4.6.0</SCCompositionVersion>
  </PropertyGroup>

  <Import Project="$(MSBuildThisFileDirectory)Build\ConvertToNetstandardReferences\ConvertToNetstandardReferences.tasks" Condition=" '$(IsDotNetCore)' == 'true' " />

  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <DefineConstants>$(DefineConstants);DEBUG;TRACE</DefineConstants>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <DefineConstants>$(DefineConstants);TRACE</DefineConstants>
  </PropertyGroup>

  <!-- .NET Core 3.0 SDK doesn't currently support COMReference: https://github.com/0xd4d/dnSpy/issues/1053 -->
  <PropertyGroup>
    <HasCOMReference>false</HasCOMReference>
    <HasCOMReference Condition=" '$(MSBuildRuntimeType)' != 'Core' ">true</HasCOMReference>
    <DefineConstants Condition=" '$(HasCOMReference)' == 'true' ">$(DefineConstants);HAS_COMREFERENCE</DefineConstants>
  </PropertyGroup>

</Project>