<Project>
  <PropertyGroup>
    <Product>BenchmarkDotNet</Product>
    <Description>Powerful .NET library for benchmarking</Description>
    <Copyright>.NET Foundation and contributors</Copyright>
    <NeutralLanguage>en-US</NeutralLanguage>
    <Authors>.NET Foundation and contributors</Authors>
    <PackageTags>benchmark;benchmarking;performance</PackageTags>
    <PackageIcon>package-icon.png</PackageIcon>
    <PackageProjectUrl>https://github.com/dotnet/BenchmarkDotNet</PackageProjectUrl>
    <PackageLicenseExpression>MIT</PackageLicenseExpression>
    <RepositoryType>git</RepositoryType>
    <RepositoryUrl>https://github.com/dotnet/BenchmarkDotNet</RepositoryUrl>

    <CLSCompliant>true</CLSCompliant>
    <ComVisible>false</ComVisible>

    <UseSharedCompilation>false</UseSharedCompilation>
    <EnableNETAnalyzers>true</EnableNETAnalyzers>
    <SuppressNETCoreSdkPreviewMessage>True</SuppressNETCoreSdkPreviewMessage>
    <CheckEolTargetFramework>false</CheckEolTargetFramework>
    <CodeAnalysisRuleSet>$(MSBuildThisFileDirectory)CodingStyle.ruleset</CodeAnalysisRuleSet>
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>

    <Nullable>annotations</Nullable>
  </PropertyGroup>

  <ItemGroup>
    <None Include="$(MSBuildThisFileDirectory)package-icon.png" Pack="True" PackagePath=""/>
  </ItemGroup>

  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)strongNameKey.snk</AssemblyOriginatorKeyFile>
    <SignAssembly>true</SignAssembly>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
  </PropertyGroup>

  <PropertyGroup Condition=" '$(IsVisualBasic)' != 'true' AND '$(IsFsharp)' != 'true' ">
    <LangVersion>12.0</LangVersion>
  </PropertyGroup>

  <PropertyGroup Condition=" '$(VersionPrefix)' == '' ">
    <VersionPrefix>0.14.1</VersionPrefix>
  </PropertyGroup>

  <PropertyGroup Condition=" '$(NoVersionSuffix)' == '' AND '$(VersionSuffix)' == '' ">
    <VersionSuffix>develop</VersionSuffix>
    <VersionSuffix Condition=" '$(BDN_CI_BUILD)' != '' ">ci</VersionSuffix>
  </PropertyGroup>

  <PropertyGroup>
    <AssemblyVersion>$(VersionPrefix)</AssemblyVersion>
    <AssemblyFileVersion>$(VersionPrefix)</AssemblyFileVersion>
    <InformationalVersion>$(Version)</InformationalVersion>
    <PackageVersion>$(Version)</PackageVersion>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.2">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
    </PackageReference>
    <PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
  </ItemGroup>

  <UsingTask TaskName="ReplaceFileText"
             TaskFactory="RoslynCodeTaskFactory"
             AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.Core.dll">
    <ParameterGroup>
      <InputFilename ParameterType="System.String" Required="true" />
      <OutputFilename ParameterType="System.String" Required="true" />
      <MatchExpression ParameterType="System.String" Required="true" />
      <ReplacementText ParameterType="System.String" Required="true" />
    </ParameterGroup>
    <Task>
      <Using Namespace="System" />
      <Using Namespace="System.IO" />
      <Using Namespace="System.Text.RegularExpressions" />
      <Code Type="Fragment" Language="cs">
        <![CDATA[
            File.WriteAllText(
                OutputFilename,
                Regex.Replace(File.ReadAllText(InputFilename), MatchExpression, ReplacementText)
                );
          ]]>
      </Code>
    </Task>
  </UsingTask>
</Project>
