<Project Sdk="Microsoft.NET.Sdk">
  <Import Project="..\..\..\Version.props" />
  <PropertyGroup>
    <AssemblyTitle>PowerToys.Run</AssemblyTitle>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net8.0-windows10.0.20348.0</TargetFramework>
    <TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
    <SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
    <UseWPF>true</UseWPF>
    <UseWindowsForms>true</UseWindowsForms>
    <StartupObject>PowerLauncher.App</StartupObject>
    <ApplicationIcon>Assets\PowerLauncher\RunResource.ico</ApplicationIcon>
    <ApplicationManifest>app.manifest</ApplicationManifest>
    <RuntimeIdentifiers>win-x64;win-arm64</RuntimeIdentifiers>
    <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
    <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
    <AssetTargetFallback>uap10.0.19041</AssetTargetFallback>
    <Version>$(Version).0</Version>
    <Authors>Microsoft Corporation</Authors>
    <Description>PowerToys PowerLauncher</Description>
    <AssemblyName>PowerToys.PowerLauncher</AssemblyName>
    <OutputPath>..\..\..\..\$(Platform)\$(Configuration)</OutputPath>
    <GenerateSatelliteAssembliesForCore>true</GenerateSatelliteAssembliesForCore>
    <SelfContained>true</SelfContained>
  </PropertyGroup>

  <!-- SelfContained=true requires RuntimeIdentifier to be set -->
  <PropertyGroup Condition="'$(Platform)'=='x64'">
    <RuntimeIdentifier>win-x64</RuntimeIdentifier>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Platform)'=='ARM64'">
    <RuntimeIdentifier>win-arm64</RuntimeIdentifier>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)'=='Debug'">
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <DebugType>full</DebugType>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <Optimize>false</Optimize>
  </PropertyGroup>


  <PropertyGroup Condition="'$(Configuration)'=='Release'">
    <DefineConstants>TRACE;RELEASE</DefineConstants>
    <Optimize>true</Optimize>
    <DebugType>pdbonly</DebugType>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>

  <ItemGroup>
    <ApplicationDefinition Remove="App.xaml" />
  </ItemGroup>

  <ItemGroup>
    <None Remove="Assets\PowerLauncher\app_error.dark.png" />
    <None Remove="Assets\PowerLauncher\app_error.light.png" />
    <None Remove="Assets\PowerLauncher\RunResource.ico" />
  </ItemGroup>

  <ItemGroup>
    <Content Include="Assets\PowerLauncher\app_error.dark.png">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    <Content Include="Assets\PowerLauncher\app_error.light.png">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
  </ItemGroup>

  <ItemGroup>
    <Page Include="App.xaml" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.Windows.CsWinRT" />
    <PackageReference Include="Interop.Microsoft.Office.Interop.OneNote" />
    <PackageReference Include="Mages" />
    <PackageReference Include="LazyCache" />
    <PackageReference Include="Microsoft.Data.Sqlite" />
    <PackageReference Include="Microsoft.Toolkit.Uwp.Notifications" />
    <PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" />
    <PackageReference Include="ScipBe.Common.Office.OneNote" />
    <PackageReference Include="System.Drawing.Common">
      <ExcludeAssets>runtime</ExcludeAssets> <!-- Should already be present on .net sdk runtime, so we avoid the conflicting runtime version from nuget -->
    </PackageReference>
    <PackageReference Include="System.Reactive" />
    <PackageReference Include="System.Data.OleDb" />
    <PackageReference Include="System.ServiceProcess.ServiceController" />
    <PackageReference Include="UnitsNet" />
    <PackageReference Include="WPF-UI" />
    <!-- HACK: Microsoft.Extensions.Hosting is referenced, even if it is not used, to force dll versions to be the same as in other projects. Really only needed since OneNote uses the LazyCache and NLog dependencies, which references older assemblies. -->
    <PackageReference Include="Microsoft.Extensions.Hosting" />
    <PackageReference Include="System.Diagnostics.EventLog">
      <!-- This package is a dependency of Microsoft.Extensions.Logging.EventLog, but we need to set it here so we can exclude the assets, so it doesn't conflict with the 8.0.1 dll coming from .NET SDK. -->
      <ExcludeAssets>runtime</ExcludeAssets> <!-- Should already be present on .net sdk runtime, so we avoid the conflicting runtime version from nuget -->
    </PackageReference>
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\..\..\common\GPOWrapperProjection\GPOWrapperProjection.csproj" />
    <ProjectReference Include="..\..\..\common\interop\PowerToys.Interop.vcxproj" />
    <ProjectReference Include="..\..\..\common\ManagedCommon\ManagedCommon.csproj" />
    <ProjectReference Include="..\..\..\common\Common.UI\Common.UI.csproj" />
    <ProjectReference Include="..\..\..\settings-ui\Settings.UI.Library\Settings.UI.Library.csproj" />
    <ProjectReference Include="..\PowerLauncher.Telemetry\PowerLauncher.Telemetry.csproj" />
    <ProjectReference Include="..\Wox.Infrastructure\Wox.Infrastructure.csproj" />
    <ProjectReference Include="..\Wox.Plugin\Wox.Plugin.csproj" />
  </ItemGroup>

  <ItemGroup>
    <EmbeddedResource Update="Properties\Resources.resx">
      <Generator>PublicResXFileCodeGenerator</Generator>
      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
    </EmbeddedResource>
  </ItemGroup>

  <ItemGroup>
    <None Update="Assets\PowerLauncher\RunAsset.ico">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="Properties\Settings.settings">
      <Generator>SettingsSingleFileGenerator</Generator>
      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
    </None>
  </ItemGroup>

  <ItemGroup>
    <Page Update="Themes\HighContrastBlack.xaml">
      <SubType>Designer</SubType>
    </Page>
    <Page Update="Themes\HighContrastWhite.xaml">
      <SubType>Designer</SubType>
    </Page>
    <Page Update="Themes\HighContrast2.xaml">
      <SubType>Designer</SubType>
    </Page>
    <Page Update="Themes\HighContrast1.xaml">
      <SubType>Designer</SubType>
    </Page>
    <Page Update="Themes\Dark.xaml">
      <SubType>Designer</SubType>
    </Page>
    <Page Update="Themes\Light.xaml">
      <SubType>Designer</SubType>
    </Page>
  </ItemGroup>
  <ItemGroup>
    <Resource Include="Assets\PowerLauncher\RunResource.ico" />
  </ItemGroup>
  <ItemGroup>
    <Compile Update="Properties\Resources.Designer.cs">
      <DesignTime>True</DesignTime>
      <AutoGen>True</AutoGen>
      <DependentUpon>Resources.resx</DependentUpon>
    </Compile>
  </ItemGroup>
</Project>
