<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <Description>Commonly used models, enumerations and types.</Description>
        <AssemblyTitle>WireMock.Net.Abstractions</AssemblyTitle>
        <Authors>Stef Heyenrath</Authors>
        <TargetFrameworks>net45;net451;net461;netstandard1.0;netstandard1.3;netstandard2.0;netstandard2.1</TargetFrameworks>
        <GenerateDocumentationFile>true</GenerateDocumentationFile>
        <NoWarn>$(NoWarn);1591;8603</NoWarn>
        <AssemblyName>WireMock.Net.Abstractions</AssemblyName>
        <PackageId>WireMock.Net.Abstractions</PackageId>
        <PackageTags>wiremock;wiremock.org;interfaces;models;classes;enumerations;types</PackageTags>
        <RootNamespace>WireMock</RootNamespace>
        <ProjectGuid>{B6269AAC-170A-4346-8B9A-579DED3D9A94}</ProjectGuid>
        <PublishRepositoryUrl>true</PublishRepositoryUrl>
        <AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
        <EmbedUntrackedSources>true</EmbedUntrackedSources>
        <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
        <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
        <CodeAnalysisRuleSet>../WireMock.Net/WireMock.Net.ruleset</CodeAnalysisRuleSet>
        <SignAssembly>true</SignAssembly>
        <AssemblyOriginatorKeyFile>../WireMock.Net/WireMock.Net.snk</AssemblyOriginatorKeyFile>
        <!--<DelaySign>true</DelaySign>-->
        <PublicSign Condition=" '$(OS)' != 'Windows_NT' ">true</PublicSign>
        <PackageLicenseExpression>MIT</PackageLicenseExpression>
    </PropertyGroup>

    <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
        <!--<PathMap>$(MSBuildProjectDirectory)=/</PathMap>-->
        <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
    </PropertyGroup>

    <PropertyGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' or '$(TargetFramework)' == 'netstandard2.1'" >
        <DefineConstants>$(DefineConstants);GRAPHQL;MIMEKIT</DefineConstants>
    </PropertyGroup>

    <ItemGroup>
        <PackageReference Include="JetBrains.Annotations" Version="2022.3.1" PrivateAssets="All" />
        <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All" />

        <!-- See also https://mstack.nl/blog/20210801-source-generators -->
        <PackageReference Include="FluentBuilder" Version="0.9.0">
            <PrivateAssets>all</PrivateAssets>
            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
        </PackageReference>
    </ItemGroup>

    <ItemGroup Condition="$(TargetFramework.StartsWith('netstandard')) and '$(TargetFramework)' != 'netstandard1.0'">
      <PackageReference Include="System.Security.Cryptography.X509Certificates" Version="4.3.0" />
    </ItemGroup>

    <ItemGroup Condition="'$(TargetFramework)' == 'net461'">
        <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies.net46" Version="1.0.2">
            <PrivateAssets>all</PrivateAssets>
            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
        </PackageReference>
    </ItemGroup>

</Project>