<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>1.0.0</Version>
    <Authors>MarketAlly LLC, David H. Friedel Jr.</Authors>
    <Company>MarketAlly LLC</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 LLC</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>1.0: 100% .NET MAUI API compliance - all public APIs use MAUI types (Color, Rect, Size, Thickness, double). Full XAML support with BindableProperty for all controls, Visual State Manager integration, data binding, and XAML styles. 217 passing tests.</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>
