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

  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net5.0</TargetFramework>
    <RootNamespace>Observatory</RootNamespace>
    <SignAssembly>false</SignAssembly>
    <DelaySign>false</DelaySign>
    <AssemblyOriginatorKeyFile>ObservatoryKey.snk</AssemblyOriginatorKeyFile>
    <!--<PublishTrimmed>true</PublishTrimmed>-->
    <TrimMode>Link</TrimMode>
    <IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>
  </PropertyGroup>

  <PropertyGroup>
    <VersionSuffix>0.1.$([System.DateTime]::UtcNow.DayOfYear.ToString()).$([System.DateTime]::UtcNow.ToString(HHmm))</VersionSuffix>
    <AssemblyVersion Condition=" '$(VersionSuffix)' == '' ">0.0.0.1</AssemblyVersion>
    <AssemblyVersion Condition=" '$(VersionSuffix)' != '' ">$(VersionSuffix)</AssemblyVersion>
    <Version Condition=" '$(VersionSuffix)' == '' ">0.0.1.0</Version>
    <Version Condition=" '$(VersionSuffix)' != '' ">$(VersionSuffix)</Version>
    <ApplicationIcon>Assets\EOCIcon-Presized.ico</ApplicationIcon>
  </PropertyGroup>
  
  <ItemGroup>
    <PackageReference Include="Avalonia" Version="0.10.7" />
    <PackageReference Include="Avalonia.Controls.DataGrid" Version="0.10.7" />
    <PackageReference Include="Avalonia.Desktop" Version="0.10.7" />
    <PackageReference Include="Avalonia.Diagnostics" Version="0.10.7" />
    <PackageReference Include="Avalonia.ReactiveUI" Version="0.10.7" />
    <PackageReference Include="Egorozh.ColorPicker.Avalonia.Dialog" Version="0.10.7" />
    <PackageReference Include="MessageBox.Avalonia" Version="1.5.1" />
    <PackageReference Include="System.Configuration.ConfigurationManager" Version="5.0.0" />
    <PackageReference Include="System.Speech" Version="5.0.0" />
  </ItemGroup>

  <ItemGroup>
    <AvaloniaResource Include="Assets\**" />
  </ItemGroup>
  
  <ItemGroup>
    <Reference Include="ObservatoryFramework">
      <HintPath>..\ObservatoryFramework\bin\Release\net5.0\ObservatoryFramework.dll</HintPath>
    </Reference>
  </ItemGroup>

  <ItemGroup>
    <Compile Update="Properties\Core.Designer.cs">
      <DesignTimeSharedInput>True</DesignTimeSharedInput>
      <AutoGen>True</AutoGen>
      <DependentUpon>Core.settings</DependentUpon>
    </Compile>
    <Compile Update="UI\Views\CoreView.axaml.cs">
      <DependentUpon>CoreView.axaml</DependentUpon>
    </Compile>
    <Compile Update="UI\Views\NotificationView.axaml.cs">
      <DependentUpon>NotificationView.axaml</DependentUpon>
    </Compile>
  </ItemGroup>

  <ItemGroup>
    <None Update="Properties\Core.settings">
      <Generator>SettingsSingleFileGenerator</Generator>
      <LastGenOutput>Core.Designer.cs</LastGenOutput>
    </None>
  </ItemGroup>

  <Target Name="PreBuild" BeforeTargets="PreBuildEvent">
    <Exec Condition=" '$(OS)' == 'Windows_NT'" Command="if not exist &quot;$(ProjectDir)..\ObservatoryFramework\bin\Release\net5.0\ObservatoryFramework.dll&quot; dotnet build &quot;$(ProjectDir)..\ObservatoryFramework\ObservatoryFramework.csproj&quot; -c Release" />
    <Exec Condition=" '$(OS)' == 'Windows_NT'" Command="if not exist &quot;$(OutDir)plugins\ObservatoryExplorer.dll&quot; dotnet build &quot;$(ProjectDir)..\ObservatoryExplorer\ObservatoryExplorer.csproj&quot; -c $(ConfigurationName)" />
    <Exec Condition=" '$(OS)' != 'Windows_NT'" Command="[ ! -e &quot;$(ProjectDir)../ObservatoryFramework/bin/Release/net5.0/ObservatoryFramework.dll&quot; ] &amp;&amp; dotnet build &quot;$(ProjectDir)../ObservatoryFramework/ObservatoryFramework.csproj&quot; -c Release || echo No build necessary" />
    <Exec Condition=" '$(OS)' != 'Windows_NT'" Command="[ ! -e &quot;$(ProjectDir)$(OutDir)plugins/ObservatoryExplorer.dll&quot; ] &amp;&amp; dotnet build &quot;$(ProjectDir)../ObservatoryExplorer/ObservatoryExplorer.csproj&quot; -c $(ConfigurationName) || echo No build necessary" />
  </Target>

</Project>