<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <!--If you are willing to use Windows/MacOS native APIs you will need to create 3 projects.
    One for Windows with net7.0-windows TFM, one for MacOS with net7.0-macos and one with net7.0 TFM for Linux.-->
    <TargetFramework>net10.0-windows10.0.22621.0</TargetFramework>
    <Nullable>enable</Nullable>
    <AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>
    <ApplicationManifest>app.manifest</ApplicationManifest>
    <ApplicationIcon>icon.ico</ApplicationIcon>
    <PublishAot>true</PublishAot>
    <Trimming>full</Trimming>
    <TrimmerRemoveSymbols>true</TrimmerRemoveSymbols>
    <OptimizationPreference>Speed</OptimizationPreference>
    <HttpActivityPropagationSupport>false</HttpActivityPropagationSupport>
    <Platforms>x64;arm64</Platforms>
    <ImplicitUsings>enable</ImplicitUsings>
    <Product>PicView</Product>
    <Company>Ruben Hyldgaard Negendahl</Company>
    <Authors>Ruben Hyldgaard Negendahl</Authors>
    <Copyright>© Ruben Hyldgaard Negendahl</Copyright>
    <AssemblyName>PicView</AssemblyName>
    <StartupObject>PicView.Avalonia.Win32.Program</StartupObject>
    <LangVersion>preview</LangVersion>
  </PropertyGroup>
  <ItemGroup>
    <AvaloniaResource Include="icon.ico">
      <CopyToOutputDirectory>Never</CopyToOutputDirectory>
    </AvaloniaResource>
  </ItemGroup>

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

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

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|arm64' ">
    <DebugType>full</DebugType>
  </PropertyGroup>

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
    <DebugType>full</DebugType>
  </PropertyGroup>

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|arm64' ">
    <DebugType>none</DebugType>
  </PropertyGroup>

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
    <DebugType>none</DebugType>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Clowd.Clipboard.Avalonia" Version="1.1.4" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\PicView.Avalonia\PicView.Avalonia.csproj" />
    <ProjectReference Include="..\PicView.Core\PicView.Core.csproj" />
    <ProjectReference Include="..\PicView.Core.WindowsNT\PicView.Core.WindowsNT.csproj" />
  </ItemGroup>

  <ItemGroup>
    <Compile Update="App.axaml.cs">
      <DependentUpon>%(Filename)</DependentUpon>
    </Compile>
    <Compile Update="Views\AboutWindow.axaml.cs">
      <DependentUpon>AboutWindow.axaml</DependentUpon>
    </Compile>
    <Compile Update="Views\WinMainWindow.axaml.cs">
      <DependentUpon>WinMainWindow.axaml</DependentUpon>
    </Compile>
    <Compile Update="Views\WinTitleBar.axaml.cs">
      <DependentUpon>WinTitleBar.axaml</DependentUpon>
    </Compile>
    <Compile Update="Views\BatchResizeResizeWindow.axaml.cs">
      <DependentUpon>BatchResizeResizeWindow.axaml</DependentUpon>
      <SubType>Code</SubType>
    </Compile>
    <Compile Update="Views\EffectsWindow.axaml.cs">
      <DependentUpon>EffectsWindow.axaml</DependentUpon>
      <SubType>Code</SubType>
    </Compile>
      <Compile Update="Views\PrintPreviewWindow.axaml.cs">
          <DependentUpon>PrintPreviewWindow.axaml</DependentUpon>
      </Compile>
  </ItemGroup>

	<ItemGroup>
		<InternalsVisibleTo Include="PicView.Tests" />
	</ItemGroup>

	<ItemGroup>
	  <UpToDateCheckInput Remove="Views\KeybindingsWindow.axaml" />
	</ItemGroup>

	<ItemGroup>
	  <None Update="PicView.exe.manifest">
	    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
	  </None>
	</ItemGroup>
</Project>
