<Project Sdk="Microsoft.NET.Sdk">
  
  <PropertyGroup>
    <TargetFramework>net7.0-windows</TargetFramework>
    <Configurations>Debug;Release</Configurations>
    <Platforms>x86</Platforms>
    <RuntimeIdentifier>win7-x86</RuntimeIdentifier>
    <LangVersion>11</LangVersion>
    <Nullable>enable</Nullable>
  </PropertyGroup>
  
  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <UseWindowsForms>true</UseWindowsForms>
    <RootNamespace>TweetDuck</RootNamespace>
    <AssemblyName>TweetDuck</AssemblyName>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <ApplicationIcon>Resources\Images\icon.ico</ApplicationIcon>
  </PropertyGroup>
  
  <PropertyGroup>
    <SelfContained>true</SelfContained>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
    <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
    <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
    <SatelliteResourceLanguages>en</SatelliteResourceLanguages>
  </PropertyGroup>
  
  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <StartArguments>-datafolder TweetDuckDebug</StartArguments>
  </PropertyGroup>
  
  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>none</DebugType>
  </PropertyGroup>
  
  <ItemGroup>
    <PackageReference Include="CefSharp.WinForms.NETCore" Version="105.3.330" />
  </ItemGroup>
  
  <ItemGroup>
    <ProjectReference Include="..\..\lib\TweetLib.Browser.CEF\TweetLib.Browser.CEF.csproj" />
    <ProjectReference Include="..\..\lib\TweetLib.Browser\TweetLib.Browser.csproj" />
    <ProjectReference Include="..\..\lib\TweetLib.Communication\TweetLib.Communication.csproj" />
    <ProjectReference Include="..\..\lib\TweetLib.Core\TweetLib.Core.csproj" />
    <ProjectReference Include="..\..\lib\TweetLib.Utils\TweetLib.Utils.csproj" />
    <ProjectReference Include="..\TweetDuck.Browser\TweetDuck.Browser.csproj" />
    <ProjectReference Include="..\TweetDuck.Video\TweetDuck.Video.csproj" />
    <ProjectReference Include="..\TweetImpl.CefSharp\TweetImpl.CefSharp.csproj" />
    <ProjectReference Include="..\TweetLib.WinForms.Legacy\TweetLib.WinForms.Legacy.csproj" />
  </ItemGroup>
  
  <ItemGroup>
    <Compile Include="..\..\Version.cs" Link="Version.cs" />
  </ItemGroup>
  
  <ItemGroup>
    <None Include="app.config" />
    <None Include="Resources\Images\icon-muted.ico" />
    <None Include="Resources\Images\icon-small.ico" />
    <None Include="Resources\Images\icon-tray-muted.ico" />
    <None Include="Resources\Images\icon-tray-new.ico" />
    <None Include="Resources\Images\icon-tray.ico" />
    <None Include="Resources\Images\icon.ico" />
    <None Include="Resources\PostBuild.ps1" />
    <None Include="$(SolutionDir)README.md">
      <Link>Resources\README.md</Link>
    </None>
    <Compile Remove="Resources\Utilities\CompareStylesheets.cs" />
    <None Include="Resources\Utilities\CompareStylesheets.cs" />
  </ItemGroup>
  
  <ItemGroup>
    <ResourcesContent Include="$(SolutionDir)resources\Content\**\*.*" Visible="false" />
    <ResourcesGuide Include="$(SolutionDir)resources\Guide\**\*.*" Visible="false" />
    <ResourcesPlugins Include="$(SolutionDir)resources\Plugins\**\*.*" Visible="false" />
    <ResourcesPlugins Remove="$(SolutionDir)resources\Plugins\.debug\**\*.*" />
    <ResourcesPlugins Remove="$(SolutionDir)resources\Plugins\emoji-keyboard\emoji-instructions.txt" />
    <ResourcesPluginsDebug Include="$(SolutionDir)resources\Plugins\.debug\**\*.*" Visible="false" />
  </ItemGroup>
  
  <PropertyGroup>
    <PreBuildEvent>powershell -NoProfile -Command "$ErrorActionPreference = 'SilentlyContinue'; (Get-Process TweetDuck.Browser | Where-Object {$_.Path -eq '$(TargetDir)TweetDuck.Browser.exe'}).Kill(); Exit 0"</PreBuildEvent>
  </PropertyGroup>
  
  <Target Name="CopyResources" AfterTargets="Build">
    <ItemGroup>
      <LocalesToDelete Include="$(TargetDir)locales\*.pak" Exclude="$(TargetDir)locales\en-US.pak" Visible="false" />
    </ItemGroup>
    <ItemGroup>
      <!-- WinForms -->
      <DllsToDelete Include="$(TargetDir)System.Windows.Controls.Ribbon.dll" Visible="false" />
      <DllsToDelete Include="$(TargetDir)System.Windows.Forms.Design.dll" Visible="false" />
      <DllsToDelete Include="$(TargetDir)System.Windows.Forms.Design.Editors.dll" Visible="false" />
      <!-- WPF -->
      <DllsToDelete Include="$(TargetDir)D3DCompiler_47_cor3.dll" Visible="false" />
      <DllsToDelete Include="$(TargetDir)DirectWriteForwarder.dll" Visible="false" />
      <DllsToDelete Include="$(TargetDir)PenImc_cor3.dll" Visible="false" />
      <DllsToDelete Include="$(TargetDir)PresentationCore.dll" Visible="false" />
      <DllsToDelete Include="$(TargetDir)PresentationFramework*.dll" Visible="false" />
      <DllsToDelete Include="$(TargetDir)PresentationNative_cor3.dll" Visible="false" />
      <DllsToDelete Include="$(TargetDir)PresentationUI.dll" Visible="false" />
      <DllsToDelete Include="$(TargetDir)ReachFramework.dll" Visible="false" />
      <DllsToDelete Include="$(TargetDir)System.Xaml.dll" Visible="false" />
      <DllsToDelete Include="$(TargetDir)System.Windows.Input.Manipulations.dll" Visible="false" />
      <DllsToDelete Include="$(TargetDir)UIAutomation*.dll" Visible="false" />
      <DllsToDelete Include="$(TargetDir)vcruntime140_cor3.dll" Visible="false" />
      <DllsToDelete Include="$(TargetDir)WindowsBase.dll" Visible="false" />
      <DllsToDelete Include="$(TargetDir)WindowsFormsIntegration.dll" Visible="false" />
      <DllsToDelete Include="$(TargetDir)wpfgfx_cor3.dll" Visible="false" />
    </ItemGroup>
    <Delete Files="@(LocalesToDelete)" />
    <Delete Files="@(DllsToDelete)" />
    <RemoveDir Directories="$(TargetDir)resources" />
    <RemoveDir Directories="$(TargetDir)guide" />
    <RemoveDir Directories="$(TargetDir)plugins" />
    <MakeDir Directories="$(TargetDir)plugins\official" />
    <MakeDir Directories="$(TargetDir)plugins\user" />
    <Copy SourceFiles="@(ResourcesContent)" DestinationFiles="@(ResourcesContent->'$(TargetDir)\resources\%(RecursiveDir)%(Filename)%(Extension)')" />
    <Copy SourceFiles="@(ResourcesGuide)" DestinationFiles="@(ResourcesGuide->'$(TargetDir)\guide\%(RecursiveDir)%(Filename)%(Extension)')" />
    <Copy SourceFiles="@(ResourcesPlugins)" DestinationFiles="@(ResourcesPlugins->'$(TargetDir)\plugins\official\%(RecursiveDir)%(Filename)%(Extension)')" />
    <Exec Command="powershell -NoProfile -ExecutionPolicy Unrestricted -File &quot;$(ProjectDir)Resources\PostBuild.ps1&quot; &quot;$(TargetDir)\&quot;" IgnoreExitCode="false" />
  </Target>
  
  <Target Name="FinalizeDebug" AfterTargets="CopyResources" Condition="$(ConfigurationName) == Debug">
    <Copy SourceFiles="@(ResourcesPluginsDebug)" DestinationFiles="@(ResourcesPluginsDebug->'$(TargetDir)\plugins\user\.debug\%(RecursiveDir)%(Filename)%(Extension)')" />
  </Target>
  
  <Target Name="FinalizeRelease" AfterTargets="CopyResources" Condition="$(ConfigurationName) == Release">
    <ItemGroup>
      <PdbFiles Include="$(TargetDir)*.pdb" Visible="false" />
      <XmlFiles Include="$(TargetDir)*.xml" Visible="false" />
      <TxtFiles Include="$(TargetDir)*.txt" Visible="false" />
    </ItemGroup>
    <Delete Files="$(TargetDir)CefSharp.BrowserSubprocess.exe" />
    <Delete Files="$(TargetDir)widevinecdmadapter.dll" />
    <Delete Files="@(PdbFiles)" />
    <Delete Files="@(XmlFiles)" />
    <Delete Files="@(TxtFiles)" />
    <Copy SourceFiles="$(SolutionDir)bld\Resources\LICENSES.txt" DestinationFolder="$(TargetDir)" />
    <Exec Command="start &quot;&quot; /B &quot;ISCC.exe&quot; /Q &quot;$(SolutionDir)bld\gen_upd.iss&quot;" WorkingDirectory="$(SolutionDir)bld\" IgnoreExitCode="true" />
  </Target>

</Project>