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

  <PropertyGroup>
    <TargetFramework>net9.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <RootNamespace>OpenMaui.Platform.Linux</RootNamespace>
    <AssemblyName>OpenMaui.Controls.Linux</AssemblyName>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
    <NoWarn>$(NoWarn);CS0108;CS1591;CS0618</NoWarn>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
    <GenerateTargetFrameworkAttribute>false</GenerateTargetFrameworkAttribute>

    <!-- NuGet Package Properties -->
    <PackageId>OpenMaui.Controls.Linux</PackageId>
    <Version>9.0.0</Version>
    <Authors>MarketAlly Pte Ltd, David H. Friedel Jr.</Authors>
    <Company>MarketAlly Pte Ltd</Company>
    <Product>OpenMaui Linux Controls</Product>
    <Description>Linux desktop support for .NET MAUI applications using SkiaSharp rendering. Supports X11 and Wayland display servers with 35+ controls, platform services, and accessibility support.</Description>
    <Copyright>Copyright 2025-2026 MarketAlly Pte Ltd</Copyright>
    <PackageLicenseExpression>MIT</PackageLicenseExpression>
    <PackageProjectUrl>https://git.marketally.com/open-maui/maui-linux</PackageProjectUrl>
    <RepositoryUrl>https://git.marketally.com/open-maui/maui-linux.git</RepositoryUrl>
    <RepositoryType>git</RepositoryType>
    <PackageTags>maui;linux;desktop;skia;gui;cross-platform;dotnet;x11;wayland;openmaui</PackageTags>
    <PackageReleaseNotes>9.0: Version aligned with .NET 9 / MAUI 9. 100% .NET MAUI API compliance - all public APIs use MAUI types. Full XAML support, Visual State Manager, data binding, XAML styles. 541 passing tests. Previously released as 1.0.0.</PackageReleaseNotes>
    <PackageReadmeFile>README.md</PackageReadmeFile>
    <PackageIcon>icon.png</PackageIcon>
    <GeneratePackageOnBuild>false</GeneratePackageOnBuild>
    <IsPackable>true</IsPackable>
  </PropertyGroup>

  <ItemGroup>
    <!-- MAUI Core packages -->
    <PackageReference Include="Microsoft.Maui.Controls" Version="9.0.40" />
    <PackageReference Include="Microsoft.Maui.Graphics" Version="9.0.40" />
    <PackageReference Include="Microsoft.Maui.Graphics.Skia" Version="9.0.40" />

    <!-- SkiaSharp for rendering (2.88.x for FreeType compatibility) -->
    <PackageReference Include="SkiaSharp" Version="2.88.9" />
    <PackageReference Include="SkiaSharp.NativeAssets.Linux" Version="2.88.9" />
    <PackageReference Include="SkiaSharp.Views.Desktop.Common" Version="2.88.9" />
    <PackageReference Include="Svg.Skia" Version="1.0.0" />

    <!-- HarfBuzz for advanced text shaping -->
    <PackageReference Include="HarfBuzzSharp" Version="7.3.0.3" />
    <PackageReference Include="HarfBuzzSharp.NativeAssets.Linux" Version="7.3.0.3" />
  </ItemGroup>

  <!-- Include README and icon in package -->
  <ItemGroup>
    <None Include="README.md" Pack="true" PackagePath="" />
    <None Include="assets/icon.png" Pack="true" PackagePath="" />
  </ItemGroup>

  <!-- Include build targets in package - auto-imports when package is referenced -->
  <ItemGroup>
    <None Include="build\OpenMaui.Controls.Linux.targets" Pack="true" PackagePath="build\OpenMaui.Controls.Linux.targets" />
  </ItemGroup>

  <!-- Exclude old handler files, samples, templates, and VSIX -->
  <ItemGroup>
    <Compile Remove="Handlers/*.Linux.cs" />
    <Compile Remove="samples/**/*.cs" />
    <Compile Remove="tests/**/*.cs" />
    <Compile Remove="templates/**/*.cs" />
    <Compile Remove="vsix/**/*.cs" />
    <None Remove="vsix/**/*.xaml" />
    <None Remove="templates/**/*.xaml" />
    <None Remove="samples/**/*.xaml" />
    <MauiXaml Remove="vsix/**/*.xaml" />
    <MauiXaml Remove="templates/**/*.xaml" />
    <MauiXaml Remove="samples/**/*.xaml" />
  </ItemGroup>

</Project>
