<?xml version="1.0" encoding="utf-8"?>
<Project>
  <Import Project="..\VSProps\Base.Macros.props" />
  <Import Project="$(VSPropsDir)Base.Targets.props" />
  <PropertyGroup Label="Globals">
    <ProjectGuid>{474661E7-C73A-43A6-AFEE-EE1EC433D49E}</ProjectGuid>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
  <Import Project="$(VSPropsDir)Configuration.Application.props" />
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
  <ImportGroup Label="ExtensionSettings" />
  <ImportGroup Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
    <Import Project="$(VSPropsDir)Base.props" />
    <Import Project="$(VSPropsDir)Base.Dolphin.props" />
    <Import Project="$(VSPropsDir)PCHUse.props" />
  </ImportGroup>
  <PropertyGroup Label="UserMacros" />
  <ItemDefinitionGroup>
    <!--This project also compiles gtest-->
    <ClCompile>
      <AdditionalIncludeDirectories>$(ExternalsDir)gtest\googletest\include;$(ExternalsDir)gtest\googletest;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
    </ClCompile>
    <Link>
      <SubSystem>Console</SubSystem>
    </Link>
  </ItemDefinitionGroup>
  <ItemGroup>
    <ClInclude Include="Core\DSP\DSPTestBinary.h" />
    <ClInclude Include="Core\DSP\DSPTestText.h" />
    <ClInclude Include="Core\DSP\HermesBinary.h" />
    <ClInclude Include="Core\DSP\HermesText.h" />
    <ClInclude Include="Core\IOS\ES\TestBinaryData.h" />
    <ClInclude Include="Core\PowerPC\TestValues.h" />
  </ItemGroup>
  <ItemGroup>
    <!--gtest is rather small, so just include it into the build here-->
    <ClCompile Include="$(ExternalsDir)gtest\googletest\src\gtest-all.cc" />
    <!--Lump all of the tests (and supporting code) into one binary-->
    <ClCompile Include="UnitTestsMain.cpp" />
    <ClCompile Include="Common\BitFieldTest.cpp" />
    <ClCompile Include="Common\BitSetTest.cpp" />
    <ClCompile Include="Common\BitUtilsTest.cpp" />
    <ClCompile Include="Common\BlockingLoopTest.cpp" />
    <ClCompile Include="Common\BusyLoopTest.cpp" />
    <ClCompile Include="Common\CommonFuncsTest.cpp" />
    <ClCompile Include="Common\Crypto\EcTest.cpp" />
    <ClCompile Include="Common\Crypto\SHA1Test.cpp" />
    <ClCompile Include="Common\EnumFormatterTest.cpp" />
    <ClCompile Include="Common\EventTest.cpp" />
    <ClCompile Include="Common\FileUtilTest.cpp" />
    <ClCompile Include="Common\FixedSizeQueueTest.cpp" />
    <ClCompile Include="Common\FlagTest.cpp" />
    <ClCompile Include="Common\FloatUtilsTest.cpp" />
    <ClCompile Include="Common\MathUtilTest.cpp" />
    <ClCompile Include="Common\NandPathsTest.cpp" />
    <ClCompile Include="Common\SettingsHandlerTest.cpp" />
    <ClCompile Include="Common\SPSCQueueTest.cpp" />
    <ClCompile Include="Common\StringUtilTest.cpp" />
    <ClCompile Include="Common\SwapTest.cpp" />
    <ClCompile Include="Common\WorkQueueThreadTest.cpp" />
    <ClCompile Include="Core\CoreTimingTest.cpp" />
    <ClCompile Include="Core\DSP\DSPAcceleratorTest.cpp" />
    <ClCompile Include="Core\DSP\DSPAssemblyTest.cpp" />
    <ClCompile Include="Core\DSP\DSPTestBinary.cpp" />
    <ClCompile Include="Core\DSP\DSPTestText.cpp" />
    <ClCompile Include="Core\DSP\HermesBinary.cpp" />
    <ClCompile Include="Core\DSP\HermesText.cpp" />
    <ClCompile Include="Core\IOS\ES\FormatsTest.cpp" />
    <ClCompile Include="Core\IOS\FS\FileSystemTest.cpp" />
    <ClCompile Include="Core\IOS\USB\SkylandersTest.cpp" />
    <ClCompile Include="Core\MMIOTest.cpp" />
    <ClCompile Include="Core\PageFaultTest.cpp" />
    <ClCompile Include="Core\PatchAllowlistTest.cpp" />
    <ClCompile Include="Core\PowerPC\DivUtilsTest.cpp" />
    <ClCompile Include="VideoCommon\VertexLoaderTest.cpp" />
    <ClCompile Include="StubHost.cpp" />
  </ItemGroup>
  <!--Arch-specific tests-->
  <ItemGroup Condition="'$(Platform)'=='x64'">
    <ClCompile Include="Common\x64EmitterTest.cpp" />
    <ClCompile Include="Core\PowerPC\Jit64Common\ConvertDoubleToSingle.cpp" />
    <ClCompile Include="Core\PowerPC\Jit64Common\Frsqrte.cpp" />
  </ItemGroup>
  <ItemGroup Condition="'$(Platform)'=='ARM64'">
    <ClCompile Include="Common\Arm64EmitterTest.cpp" />
    <ClCompile Include="Core\PowerPC\JitArm64\ConvertSingleDouble.cpp" />
    <ClCompile Include="Core\PowerPC\JitArm64\FPRF.cpp" />
    <ClCompile Include="Core\PowerPC\JitArm64\Fres.cpp" />
    <ClCompile Include="Core\PowerPC\JitArm64\Frsqrte.cpp" />
    <ClCompile Include="Core\PowerPC\JitArm64\MovI2R.cpp" />
  </ItemGroup>
  <ItemGroup>
    <Text Include="CMakeLists.txt" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="$(CoreDir)DolphinLib.vcxproj">
      <Project>{D79392F7-06D6-4B4B-A39F-4D587C215D3A}</Project>
    </ProjectReference>
    <ProjectReference Include="$(DolphinRootDir)Languages\Languages.vcxproj">
      <Project>{0e033be3-2e08-428e-9ae9-bc673efa12b5}</Project>
    </ProjectReference>
  </ItemGroup>
  <Import Project="$(ExternalsDir)Bochs_disasm\exports.props" />
  <Import Project="$(ExternalsDir)fmt\exports.props" />
  <Import Project="$(ExternalsDir)picojson\exports.props" />
  <Import Project="$(ExternalsDir)rcheevos\exports.props" />
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
  <ImportGroup Label="ExtensionTargets">
  </ImportGroup>
  <ItemGroup>
    <DataSysFiles Include="$(DolphinRootDir)Data\**\Sys\**\*.*" />
  </ItemGroup>
  <Target Name="AfterBuild">
    <Message Text="Copying Data directory..." Importance="High" />
    <RemoveDir Directories="$(TargetDir)Sys" />
    <Copy SourceFiles="@(DataSysFiles)" DestinationFolder="$(TargetDir)%(RecursiveDir)" SkipUnchangedFiles="True" />
  </Target>
  <Target Name="ExecUnitTests" AfterTargets="AfterBuild" Condition="'$(RunUnitTests)'=='true'">
    <!--This is only executed via msbuild, VS test runner automatically does this-->
    <Exec Command="$(TargetPath)" />
  </Target>
</Project>
