<Project Sdk="Microsoft.NET.Sdk">
   <Import Project="$(SolutionDir)Program.props" />
   <PropertyGroup>
      <TargetFramework>net472</TargetFramework>
      <OutputType>Library</OutputType>
      <AssemblyName>Program</AssemblyName>
      <UseWPF>true</UseWPF>
      <Description>Program DLL serves as starting test point</Description>
      <Company>Raytheon Technologies</Company>
      <Product>NGSRI Program</Product>
      <Authors>TEEC</Authors>
      <Copyright>Copyright © Raytheon Technologies $([System.DateTime]::get_now().ToString("yyyy"))</Copyright>
      <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
      <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
      <AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
      
      <!-- Dynamic Versioning (Suitable for Release) -->
      <!-- <Version>$(Version)$(Suffix)</Version> -->

      <!-- Static Versioning (Suitable for Development) -->
      <Version>1.0.0</Version>
      <Configurations>Debug;Release;Deploy</Configurations>
   </PropertyGroup>

   <ItemGroup>
      <PackageReference Include="Raytheon.Configuration" Version="*" />
      <PackageReference Include="Raytheon.Configuration.Contracts" Version="*" />
      <PackageReference Include="NLog" Version="5.0.0" />
      <PackageReference Include="Raytheon.Instruments.InstrumentManager.GeneralInstrumentManager" Version="1.4.1" />
      <!--
      <PackageReference Include="NGSRI" Version="1.0.0" />
      -->
   </ItemGroup>

   <!-- Copy pdb files for DLLs in nuget packages to output directory-->
   <Target Name="IncludeSymbolFiles" AfterTargets="ResolveAssemblyReferences" Condition="@(ReferenceCopyLocalPaths) != ''">
      <ItemGroup>
         <ReferenceCopyLocalPaths Include="%(ReferenceCopyLocalPaths.RelativeDir)%(ReferenceCopyLocalPaths.Filename).pdb" />
         <ReferenceCopyLocalPaths Remove="@(ReferenceCopyLocalPaths)" Condition="!Exists('%(FullPath)')" />
      </ItemGroup>
   </Target>
   <ItemGroup>
     <ProjectReference Include="..\Instruments\PowerSupplies\Keysight67XX\KeysightN67XX.csproj" />
     <ProjectReference Include="..\MeasurementManagers\PowerSupplyMeasurementManager\PowerSupplyMeasurementManager.csproj" />
     <ProjectReference Include="..\ProgramGUI\ProgramGui.csproj" />
     <ProjectReference Include="..\Raytheon.Common\Raytheon.Common.csproj" />
   </ItemGroup>

   <ItemGroup>
      <Reference Include="NationalInstruments.TestStand.Interop.API">
        <HintPath>..\ProgramLib\Dependencies\NationalInstruments.TestStand.Interop.API.dll</HintPath>
      </Reference>
      <Reference Include="System.Windows" />
   </ItemGroup>

   <Target Name="CopyFiles" AfterTargets="AfterBuild">
      <ItemGroup>
         <FILES_1 Include="Dependencies\*.*" />
         <FILES_2 Include="InstrumentConfigFile\*.*" />
         <FILES_3 Include="Dependencies\RINSS\*.*" />
      </ItemGroup>
      <Copy SourceFiles="@(FILES_1)" DestinationFolder="$(OutDir)" />
      <Copy SourceFiles="@(FILES_2)" DestinationFolder="$(OutDir)InstrumentConfig" />
      <Copy SourceFiles="@(FILES_3)" DestinationFolder="$(OutDir)RINSS" />
      <Copy SourceFiles="ProgramConfigFile\config.ini" DestinationFolder="$(OutDir)" />
      <Copy SourceFiles="MiscConfigFile\NLog.config" DestinationFolder="$(OutDir)" />
   </Target>

   <Target Name="ProjClean" AfterTargets="AfterClean">
      <RemoveDir Directories="$(OutDir)InstrumentConfig" />
      <RemoveDir Directories="$(OutDir)RINSS" />
      <Delete Files="$(OutDir)config.ini" />
      <Delete Files="$(OutDir)NLog.config" />
      <Delete Files="$(OutDir)NLogWrapper.Part.dll" />
   </Target>

</Project>
