<Project Sdk="Microsoft.NET.Sdk">
  <Import Project="..\..\build\common.props" />
  <PropertyGroup>
    <AssemblyTitle>BenchmarkDotNet</AssemblyTitle>
    <TargetFrameworks>netstandard2.0;net6.0;net8.0</TargetFrameworks>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
    <NoWarn>$(NoWarn);1701;1702;1705;1591;3005;NU1702;CS3001;CS3003</NoWarn>
    <AssemblyName>BenchmarkDotNet</AssemblyName>
    <PackageId>BenchmarkDotNet</PackageId>
    <RootNamespace>BenchmarkDotNet</RootNamespace>
    <!-- needed for docfx xref resolver -->
    <ProduceReferenceAssembly>True</ProduceReferenceAssembly>
  </PropertyGroup>
  <ItemGroup>
    <EmbeddedResource Include="Templates\*" Exclude="bin\**;obj\**;**\*.xproj;packages\**;@(EmbeddedResource)" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="CommandLineParser" Version="2.9.1" />
    <PackageReference Include="Gee.External.Capstone" Version="2.3.0" />
    <PackageReference Include="Iced" Version="1.17.0" />
    <PackageReference Include="Microsoft.Diagnostics.Runtime" Version="3.1.512801" />
    <PackageReference Include="Perfolizer" Version="[0.4.0]" />
    <PackageReference Include="Microsoft.Diagnostics.Tracing.TraceEvent" Version="3.1.8" PrivateAssets="contentfiles;analyzers" />
    <PackageReference Include="Microsoft.DotNet.PlatformAbstractions" Version="3.1.6" />
    <!-- Do not update these packages, or else netcoreapp3.1 may no longer work -->
    <PackageReference Include="System.Management" Version="6.0.0" />
    <PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.5.0" />
  </ItemGroup>
  <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
    <PackageReference Include="Microsoft.Win32.Registry" Version="5.0.0" />
    <PackageReference Include="System.Numerics.Vectors" Version="4.5.0" />
    <PackageReference Include="System.Reflection.Emit" Version="4.7.0" />
    <PackageReference Include="System.Reflection.Emit.Lightweight" Version="4.7.0" />
    <PackageReference Include="System.Threading.Tasks.Extensions" Version="4.5.4" />
  </ItemGroup>
  <ItemGroup Condition="'$(OS)' == 'Windows_NT' AND '$(UseMonoRuntime)' != 'true' ">
    <ProjectReference Include="..\BenchmarkDotNet.Disassembler.x64\BenchmarkDotNet.Disassembler.x64.csproj">
      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
    </ProjectReference>
    <ProjectReference Include="..\BenchmarkDotNet.Disassembler.x86\BenchmarkDotNet.Disassembler.x86.csproj">
      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
    </ProjectReference>
    <EmbeddedResource Include="Disassemblers\net462\win7-x86\BenchmarkDotNet.Disassembler.x86.exe" />
    <EmbeddedResource Include="Disassemblers\net462\win7-x64\BenchmarkDotNet.Disassembler.x64.exe" />
    <EmbeddedResource Include="Disassemblers\net462\win7-x64\Microsoft.Diagnostics.Runtime.dll" />
    <EmbeddedResource Include="Disassemblers\net462\win7-x64\Iced.dll" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\BenchmarkDotNet.Annotations\BenchmarkDotNet.Annotations.csproj" />
  </ItemGroup>
  <ItemGroup Condition=" '$(TargetFrameworkIdentifier)' == '.NETStandard' ">
    <Compile Include="..\BenchmarkDotNet.Annotations\Attributes\DynamicallyAccessedMembersAttribute.cs" Link="Properties\DynamicallyAccessedMembersAttribute.cs" />
    <Compile Include="..\BenchmarkDotNet.Annotations\Attributes\DynamicallyAccessedMemberTypes.cs" Link="Properties\DynamicallyAccessedMemberTypes.cs" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="..\BenchmarkDotNet.Disassembler.x64\DataContracts.cs" Link="Disassemblers\DataContracts.cs" />
  </ItemGroup>
</Project>
