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

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <IsPackable>false</IsPackable>

    <TargetOS Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Windows)))' == 'true'">windows</TargetOS>
    <TargetOS Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::OSX)))' == 'true'">osx</TargetOS>
    <TargetOS Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Linux)))' == 'true'">linux</TargetOS>
    <Configurations>Debug;Release</Configurations>
    <RunSettingsFilePath>$(MSBuildProjectDirectory)\.runsettings</RunSettingsFilePath>
    <DefaultItemExcludes>$(DefaultItemExcludes);._*</DefaultItemExcludes>
  </PropertyGroup>

  <PropertyGroup>
    <GenerateAssemblyInfo>true</GenerateAssemblyInfo>
    <AllowUnsafeBlocks>True</AllowUnsafeBlocks>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" />
    <PackageReference Include="NUnit" />
    <PackageReference Include="NUnit3TestAdapter" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\Ryujinx.Audio\Ryujinx.Audio.csproj" />
    <ProjectReference Include="..\Ryujinx.Cpu\Ryujinx.Cpu.csproj" />
    <ProjectReference Include="..\Ryujinx.HLE\Ryujinx.HLE.csproj" />
    <ProjectReference Include="..\Ryujinx.Tests.Memory\Ryujinx.Tests.Memory.csproj" />
    <ProjectReference Include="..\Ryujinx.Memory\Ryujinx.Memory.csproj" />
    <ProjectReference Include="..\Ryujinx.Tests.Unicorn\Ryujinx.Tests.Unicorn.csproj" />
    <ProjectReference Include="..\ARMeilleure\ARMeilleure.csproj" />
  </ItemGroup>

  <Target Name="CopyUnicorn" AfterTargets="Build">
    <ItemGroup>
      <UnicornLib Include="..\Ryujinx.Tests.Unicorn\libs\$(TargetOS)\*unicorn.*" />
    </ItemGroup>
    <Copy SourceFiles="@(UnicornLib)" DestinationFolder="$(OutputPath)" ContinueOnError="true" />
  </Target>

  <Target Name="CleanUnicorn" BeforeTargets="Clean">
    <ItemGroup>
      <UnicornLib Include="$(OutputPath)/unicorn.*" />
    </ItemGroup>
    <Delete Files="@(UnicornLib)" />
  </Target>

</Project>
