<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFrameworks>net8.0;netstandard20</TargetFrameworks>
    <Platforms>x86;x64;arm64;AnyCPU</Platforms>
    <AssemblyVersion>14.13.0</AssemblyVersion>
    <FileVersion>14.13.0</FileVersion>
    <Version>14.13.0</Version>
    <Configurations>DebugQ8;DebugQ16;DebugQ16-HDRI;TestQ8;TestQ16;TestQ16-HDRI;TestQ8-OpenMP;TestQ16-OpenMP;TestQ16-HDRI-OpenMP;ReleaseQ8;ReleaseQ8-OpenMP;ReleaseQ16;ReleaseQ16-OpenMP;ReleaseQ16-HDRI;ReleaseQ16-HDRI-OpenMP</Configurations>
  </PropertyGroup>

  <PropertyGroup Condition="$(Configuration.EndsWith('Q8'))">
    <DefineConstants>Q8;PLATFORM_$(Platform)</DefineConstants>
    <QuantumType>Q8</QuantumType>
    <QuantumName>Q8</QuantumName>
  </PropertyGroup>

  <PropertyGroup Condition="$(Configuration.EndsWith('Q8-OpenMP'))">
    <DefineConstants>Q8;OPENMP;PLATFORM_$(Platform)</DefineConstants>
    <QuantumType>Q8</QuantumType>
    <QuantumName>Q8-OpenMP</QuantumName>
  </PropertyGroup>

  <PropertyGroup Condition="$(Configuration.EndsWith('Q16'))">
    <DefineConstants>Q16;PLATFORM_$(Platform)</DefineConstants>
    <QuantumType>Q16</QuantumType>
    <QuantumName>Q16</QuantumName>
  </PropertyGroup>

  <PropertyGroup Condition="$(Configuration.EndsWith('Q16-OpenMP'))">
    <DefineConstants>Q16;OPENMP;PLATFORM_$(Platform)</DefineConstants>
    <QuantumType>Q16</QuantumType>
    <QuantumName>Q16-OpenMP</QuantumName>
  </PropertyGroup>

  <PropertyGroup Condition="$(Configuration.EndsWith('Q16-HDRI'))">
    <DefineConstants>Q16HDRI;PLATFORM_$(Platform)</DefineConstants>
    <QuantumType>Q16-HDRI</QuantumType>
    <QuantumName>Q16-HDRI</QuantumName>
  </PropertyGroup>

  <PropertyGroup Condition="$(Configuration.EndsWith('Q16-HDRI-OpenMP'))">
    <DefineConstants>Q16HDRI;OPENMP;PLATFORM_$(Platform)</DefineConstants>
    <QuantumType>Q16-HDRI</QuantumType>
    <QuantumName>Q16-HDRI-OpenMP</QuantumName>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers" PrivateAssets="All" />
    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
    <PackageReference Include="StyleCop.Analyzers" PrivateAssets="All" />
  </ItemGroup>

  <PropertyGroup Condition="'$(Platform)' == 'x86'">
    <PlatformTarget>x86</PlatformTarget>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Platform)' == 'x64'">
    <PlatformTarget>x64</PlatformTarget>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Platform)' == 'arm64'">
    <PlatformTarget>ARM64</PlatformTarget>
  </PropertyGroup>

  <PropertyGroup>
    <AssemblyName>Magick.NET-$(QuantumName)-$(Platform)</AssemblyName>
    <AssemblyTitle>Magick.NET $(QuantumName) $(Platform) $(TargetFrameWork)</AssemblyTitle>
    <DocumentationFile>bin/$(Configuration)/$(Platform)/$(TargetFrameWork)/Magick.NET-$(QuantumName)-$(Platform).xml</DocumentationFile>
  </PropertyGroup>

  <ItemGroup>
    <Compile Include="../Magick.Native/TrademarkAttribute.cs" Link="TrademarkAttribute.cs" />
    <Compile Include="../Shared/Bytes.cs" Link="Helpers/Bytes.cs" />
    <Compile Include="../Shared/EnumHelper.cs" Link="Helpers/EnumHelper.cs" />
    <Compile Include="../Shared/FileHelper.cs" Link="Helpers/FileHelper.cs" />
    <Compile Include="../Shared/MemberNotNullAttribute.cs" Link="Helpers/MemberNotNullAttribute.cs" />
    <Compile Include="../Shared/NotNullAttribute.cs" Link="Helpers/NotNullAttribute.cs" />
    <Compile Include="../Shared/PooledByteArray.cs" Link="Helpers/PooledByteArray.cs" />
    <Compile Include="../Shared/Throw.cs" Link="Helpers/Throw.cs" />
    <Compile Include="../Shared/CallerArgumentExpressionAttribute.cs" Link="Helpers/CallerArgumentExpressionAttribute.cs" />
    <Compile Include="../Shared/TypeHelper.cs" Link="Helpers/TypeHelper.cs" />
  </ItemGroup>

  <PropertyGroup>
    <ResourceFolder>../Magick.Native/resources/Release$(QuantumType)</ResourceFolder>
    <ResourceFolder Condition="'$(Platform)' != 'AnyCPU'">$(ResourceFolder)/$(Platform)</ResourceFolder>
    <ResourceFolder Condition="'$(Platform)' == 'AnyCPU'">$(ResourceFolder)/x64</ResourceFolder>
  </PropertyGroup>

  <ItemGroup>
    <EmbeddedResource Include="$(ResourceFolder)/colors.xml" Link="Resources/colors.xml">
      <LogicalName>ImageMagick.Resources.Xml.colors.xml</LogicalName>
    </EmbeddedResource>
    <EmbeddedResource Include="$(ResourceFolder)/configure.xml" Link="Resources/configure.xml">
      <LogicalName>ImageMagick.Resources.Xml.configure.xml</LogicalName>
    </EmbeddedResource>
    <EmbeddedResource Include="$(ResourceFolder)/delegates.xml" Link="Resources/delegates.xml">
      <LogicalName>ImageMagick.Resources.Xml.delegates.xml</LogicalName>
    </EmbeddedResource>
    <EmbeddedResource Include="$(ResourceFolder)/english.xml" Link="Resources/english.xml">
      <LogicalName>ImageMagick.Resources.Xml.english.xml</LogicalName>
    </EmbeddedResource>
    <EmbeddedResource Include="$(ResourceFolder)/locale.xml" Link="Resources/locale.xml">
      <LogicalName>ImageMagick.Resources.Xml.locale.xml</LogicalName>
    </EmbeddedResource>
    <EmbeddedResource Include="$(ResourceFolder)/log.xml" Link="Resources/log.xml">
      <LogicalName>ImageMagick.Resources.Xml.log.xml</LogicalName>
    </EmbeddedResource>
    <EmbeddedResource Include="$(ResourceFolder)/mime.xml" Link="Resources/mime.xml">
      <LogicalName>ImageMagick.Resources.Xml.mime.xml</LogicalName>
    </EmbeddedResource>
    <EmbeddedResource Include="$(ResourceFolder)/policy.xml" Link="Resources/policy.xml">
      <LogicalName>ImageMagick.Resources.Xml.policy.xml</LogicalName>
    </EmbeddedResource>
    <EmbeddedResource Include="$(ResourceFolder)/thresholds.xml" Link="Resources/thresholds.xml">
      <LogicalName>ImageMagick.Resources.Xml.thresholds.xml</LogicalName>
    </EmbeddedResource>
    <EmbeddedResource Include="$(ResourceFolder)/type.xml" Link="Resources/type.xml">
      <LogicalName>ImageMagick.Resources.Xml.type.xml</LogicalName>
    </EmbeddedResource>
    <EmbeddedResource Include="$(ResourceFolder)/type-ghostscript.xml" Link="Resources/type-ghostscript.xml">
      <LogicalName>ImageMagick.Resources.Xml.type-ghostscript.xml</LogicalName>
    </EmbeddedResource>
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="../Magick.NET.Core/Magick.NET.Core.csproj" />
    <ProjectReference Include="../../tools/Magick.NET.SourceGenerator/Magick.NET.SourceGenerator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
  </ItemGroup>

  <Import Project="../Magick.props" />
</Project>
