<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(SolutionDir)common\vsprops\BaseProjectConfig.props" />
  <Import Project="$(SolutionDir)common\vsprops\ProjectConfigAVX2.props" />
  <Import Project="$(SolutionDir)common\vsprops\WinSDK.props" />
  <PropertyGroup Label="Globals">
    <ProjectGuid>{4639972E-424E-4E13-8B07-CA403C481346}</ProjectGuid>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
  <PropertyGroup Label="Configuration">
    <ConfigurationType>StaticLibrary</ConfigurationType>
    <PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
    <PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
    <CharacterSet>Unicode</CharacterSet>
    <WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
    <UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
    <UseDebugLibraries Condition="!$(Configuration.Contains(Debug))">false</UseDebugLibraries>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
  <ImportGroup Label="ExtensionSettings">
    <Import Project="$(VCTargetsPath)\BuildCustomizations\masm.props" />
  </ImportGroup>
  <ImportGroup Label="PropertySheets">
    <Import Project="vsprops\CommonLibrary.props" />
    <Import Project="vsprops\3rdpartyDeps.props" />
    <Import Condition="$(Configuration.Contains(Debug))" Project="vsprops\CodeGen_Debug.props" />
    <Import Condition="$(Configuration.Contains(Devel))" Project="vsprops\CodeGen_Devel.props" />
    <Import Condition="$(Configuration.Contains(Release))" Project="vsprops\CodeGen_Release.props" />
    <Import Condition="!$(Configuration.Contains(Release))" Project="vsprops\IncrementalLinking.props" />
  </ImportGroup>
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup>
    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
  </PropertyGroup>
  <ItemDefinitionGroup>
    <ClCompile>
      <AdditionalIncludeDirectories>$(SolutionDir)3rdparty\d3d12memalloc\include;$(SolutionDir)3rdparty\glad\include;$(SolutionDir)3rdparty\glslang\glslang;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(SolutionDir)3rdparty\rapidyaml\rapidyaml\ext\c4core\src\c4\ext\fast_float\include</AdditionalIncludeDirectories>
      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(SolutionDir)3rdparty\libpng</AdditionalIncludeDirectories>
      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(SolutionDir)3rdparty\jpgd</AdditionalIncludeDirectories>
      <ExceptionHandling>Async</ExceptionHandling>
      <PrecompiledHeader>Use</PrecompiledHeader>
      <ForcedIncludeFiles>PrecompiledHeader.h</ForcedIncludeFiles>
      <PrecompiledHeaderFile>PrecompiledHeader.h</PrecompiledHeaderFile>
      <PreprocessorDefinitions>WIN32_LEAN_AND_MEAN;NOMINMAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <PreprocessorDefinitions Condition="!$(Configuration.Contains(AVX2))">_M_SSE=0x401;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <PreprocessorDefinitions Condition="$(Configuration.Contains(AVX2))">_M_SSE=0x501;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <EnableEnhancedInstructionSet Condition="!$(Configuration.Contains(AVX2)) Or $(Configuration.Contains(Clang))">NotSet</EnableEnhancedInstructionSet>
      <EnableEnhancedInstructionSet Condition="$(Configuration.Contains(AVX2)) And !$(Configuration.Contains(Clang))">AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
      <AdditionalOptions Condition="$(Configuration.Contains(Clang)) And !$(Configuration.Contains(AVX2))"> -march=nehalem %(AdditionalOptions)</AdditionalOptions>
      <AdditionalOptions Condition="$(Configuration.Contains(Clang)) And $(Configuration.Contains(AVX2))"> -march=haswell %(AdditionalOptions)</AdditionalOptions>
      <ObjectFileName>$(IntDir)%(RelativeDir)</ObjectFileName>
    </ClCompile>
  </ItemDefinitionGroup>
  <ItemGroup>
    <ClCompile Include="AlignedMalloc.cpp" />
    <ClCompile Include="Console.cpp" />
    <ClCompile Include="CrashHandler.cpp" />
    <ClCompile Include="D3D11\ShaderCache.cpp" />
    <ClCompile Include="D3D11\ShaderCompiler.cpp" />
    <ClCompile Include="D3D12\Builders.cpp" />
    <ClCompile Include="D3D12\Context.cpp" />
    <ClCompile Include="D3D12\DescriptorHeapManager.cpp" />
    <ClCompile Include="D3D12\ShaderCache.cpp" />
    <ClCompile Include="D3D12\StreamBuffer.cpp" />
    <ClCompile Include="D3D12\Texture.cpp" />
    <ClCompile Include="D3D12\Util.cpp" />
    <ClCompile Include="DynamicLibrary.cpp" />
    <ClCompile Include="Exceptions.cpp" />
    <ClCompile Include="FastJmp.cpp">
      <ExcludedFromBuild>true</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="General.cpp" />
    <ClCompile Include="GL\Context.cpp" />
    <ClCompile Include="GL\ContextWGL.cpp" />
    <ClCompile Include="GL\Program.cpp" />
    <ClCompile Include="GL\ShaderCache.cpp" />
    <ClCompile Include="GL\StreamBuffer.cpp" />
    <ClCompile Include="FileSystem.cpp" />
    <ClCompile Include="Image.cpp" />
    <ClCompile Include="HTTPDownloader.cpp" />
    <ClCompile Include="HTTPDownloaderCurl.cpp">
      <ExcludedFromBuild>true</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="HTTPDownloaderWinHTTP.cpp" />
    <ClCompile Include="MD5Digest.cpp" />
    <ClCompile Include="MemorySettingsInterface.cpp" />
    <ClCompile Include="ProgressCallback.cpp" />
    <ClCompile Include="ReadbackSpinManager.cpp" />
    <ClCompile Include="StackWalker.cpp" />
    <ClCompile Include="StringUtil.cpp" />
    <ClCompile Include="SettingsWrapper.cpp" />
    <ClCompile Include="Timer.cpp" />
    <ClCompile Include="Vulkan\vk_mem_alloc.cpp" />
    <ClCompile Include="Vulkan\Builders.cpp" />
    <ClCompile Include="Vulkan\Context.cpp" />
    <ClCompile Include="Vulkan\Loader.cpp" />
    <ClCompile Include="Vulkan\ShaderCache.cpp" />
    <ClCompile Include="Vulkan\ShaderCompiler.cpp" />
    <ClCompile Include="Vulkan\StreamBuffer.cpp" />
    <ClCompile Include="Vulkan\SwapChain.cpp" />
    <ClCompile Include="Vulkan\Texture.cpp" />
    <ClCompile Include="Vulkan\Util.cpp" />
    <ClCompile Include="WAVWriter.cpp" />
    <ClCompile Include="WindowInfo.cpp" />
    <ClCompile Include="Perf.cpp" />
    <ClCompile Include="PrecompiledHeader.cpp">
      <PrecompiledHeader>Create</PrecompiledHeader>
    </ClCompile>
    <ClCompile Include="Linux\LnxHostSys.cpp" />
    <ClCompile Include="Linux\LnxMisc.cpp" />
    <ClCompile Include="Linux\LnxThreads.cpp" />
    <ClCompile Include="Windows\WinHostSys.cpp" />
    <ClCompile Include="Windows\WinMisc.cpp" />
    <ClCompile Include="Windows\WinThreads.cpp" />
    <ClCompile Include="Misc.cpp" />
    <ClCompile Include="Semaphore.cpp" />
    <ClCompile Include="emitter\avx.cpp" />
    <ClCompile Include="emitter\bmi.cpp" />
    <ClCompile Include="emitter\cpudetect.cpp" />
    <ClCompile Include="emitter\fpu.cpp" />
    <ClCompile Include="emitter\groups.cpp" />
    <ClCompile Include="emitter\jmp.cpp" />
    <ClCompile Include="emitter\legacy.cpp" />
    <ClCompile Include="emitter\legacy_sse.cpp" />
    <ClCompile Include="emitter\movs.cpp" />
    <ClCompile Include="emitter\simd.cpp" />
    <ClCompile Include="emitter\x86emitter.cpp" />
    <ClCompile Include="emitter\LnxCpuDetect.cpp" />
    <ClCompile Include="emitter\WinCpuDetect.cpp" />
  </ItemGroup>
  <ItemGroup>
    <MASM Include="FastJmp.asm" />
    <None Include="Vulkan\EntryPoints.inl" />
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="Align.h" />
    <ClInclude Include="AlignedMalloc.h" />
    <ClInclude Include="BitCast.h" />
    <ClInclude Include="CrashHandler.h" />
    <ClInclude Include="D3D11\ShaderCache.h" />
    <ClInclude Include="D3D11\ShaderCompiler.h" />
    <ClInclude Include="D3D12\Builders.h" />
    <ClInclude Include="D3D12\Context.h" />
    <ClInclude Include="D3D12\DescriptorHeapManager.h" />
    <ClInclude Include="D3D12\ShaderCache.h" />
    <ClInclude Include="D3D12\StreamBuffer.h" />
    <ClInclude Include="D3D12\Texture.h" />
    <ClInclude Include="D3D12\Util.h" />
    <ClInclude Include="DynamicLibrary.h" />
    <ClInclude Include="Easing.h" />
    <ClInclude Include="boost_spsc_queue.hpp" />
    <ClInclude Include="FastJmp.h" />
    <ClInclude Include="GL\Context.h" />
    <ClInclude Include="GL\ContextWGL.h" />
    <ClInclude Include="GL\Program.h" />
    <ClInclude Include="GL\ShaderCache.h" />
    <ClInclude Include="GL\StreamBuffer.h" />
    <ClInclude Include="FileSystem.h" />
    <ClInclude Include="HashCombine.h" />
    <ClInclude Include="HeapArray.h" />
    <ClInclude Include="HeterogeneousContainers.h" />
    <ClInclude Include="Image.h" />
    <ClInclude Include="LRUCache.h" />
    <ClInclude Include="HTTPDownloader.h" />
    <ClInclude Include="HTTPDownloaderCurl.h">
      <ExcludedFromBuild>true</ExcludedFromBuild>
    </ClInclude>
    <ClInclude Include="HTTPDownloaderWinHTTP.h" />
    <ClInclude Include="MD5Digest.h" />
    <ClInclude Include="MemorySettingsInterface.h" />
    <ClInclude Include="ProgressCallback.h" />
    <ClInclude Include="ScopedGuard.h" />
    <ClInclude Include="StackWalker.h" />
    <ClInclude Include="StringUtil.h" />
    <ClInclude Include="SettingsInterface.h" />
    <ClInclude Include="SettingsWrapper.h" />
    <ClInclude Include="Assertions.h" />
    <ClInclude Include="Console.h" />
    <ClInclude Include="Exceptions.h" />
    <ClInclude Include="General.h" />
    <ClInclude Include="MathUtils.h" />
    <ClInclude Include="MemcpyFast.h" />
    <ClInclude Include="Path.h" />
    <ClInclude Include="PrecompiledHeader.h" />
    <ClInclude Include="ReadbackSpinManager.h" />
    <ClInclude Include="RedtapeWindows.h" />
    <ClInclude Include="SafeArray.h" />
    <ClInclude Include="ThreadPool.h" />
    <ClInclude Include="Timer.h" />
    <ClInclude Include="Vulkan\Builders.h" />
    <ClInclude Include="Vulkan\Context.h" />
    <ClInclude Include="Vulkan\EntryPoints.h" />
    <ClInclude Include="Vulkan\Loader.h" />
    <ClInclude Include="Vulkan\ShaderCache.h" />
    <ClInclude Include="Vulkan\ShaderCompiler.h" />
    <ClInclude Include="Vulkan\StreamBuffer.h" />
    <ClInclude Include="Vulkan\SwapChain.h" />
    <ClInclude Include="Vulkan\Texture.h" />
    <ClInclude Include="Vulkan\Util.h" />
    <ClInclude Include="WAVWriter.h" />
    <ClInclude Include="WindowInfo.h" />
    <ClInclude Include="Threading.h" />
    <ClInclude Include="emitter\implement\avx.h" />
    <ClInclude Include="emitter\implement\bmi.h" />
    <ClInclude Include="emitter\cpudetect_internal.h" />
    <ClInclude Include="emitter\instructions.h" />
    <ClInclude Include="emitter\internal.h" />
    <ClInclude Include="emitter\legacy_instructions.h" />
    <ClInclude Include="emitter\legacy_internal.h" />
    <ClInclude Include="emitter\legacy_types.h" />
    <ClInclude Include="emitter\tools.h" />
    <ClInclude Include="emitter\x86emitter.h" />
    <ClInclude Include="emitter\x86types.h" />
    <ClInclude Include="emitter\implement\dwshift.h" />
    <ClInclude Include="emitter\implement\group1.h" />
    <ClInclude Include="emitter\implement\group2.h" />
    <ClInclude Include="emitter\implement\group3.h" />
    <ClInclude Include="emitter\implement\helpers.h" />
    <ClInclude Include="emitter\implement\incdec.h" />
    <ClInclude Include="emitter\implement\jmpcall.h" />
    <ClInclude Include="emitter\implement\movs.h" />
    <ClInclude Include="emitter\implement\test.h" />
    <ClInclude Include="emitter\implement\xchg.h" />
    <ClInclude Include="emitter\implement\simd_arithmetic.h" />
    <ClInclude Include="emitter\implement\simd_comparisons.h" />
    <ClInclude Include="emitter\implement\simd_helpers.h" />
    <ClInclude Include="emitter\implement\simd_moremovs.h" />
    <ClInclude Include="emitter\implement\simd_shufflepack.h" />
    <ClInclude Include="ZipHelpers.h" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\3rdparty\d3d12memalloc\d3d12memalloc.vcxproj">
      <Project>{d45cec7a-3171-40dd-975d-e1544cf16139}</Project>
    </ProjectReference>
    <ProjectReference Include="..\3rdparty\glad\glad.vcxproj">
      <Project>{c0293b32-5acf-40f0-aa6c-e6da6f3bf33a}</Project>
    </ProjectReference>
    <ProjectReference Include="..\3rdparty\glslang\glslang.vcxproj">
      <Project>{ef6834a9-11f3-4331-bc34-21b325abb180}</Project>
    </ProjectReference>
    <ProjectReference Include="..\3rdparty\jpgd\jpgd.vcxproj">
      <Project>{ed2f21fd-0a36-4a8f-9b90-e7d92a2acb63}</Project>
    </ProjectReference>
  </ItemGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
  <ImportGroup Label="ExtensionTargets">
    <Import Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" />
  </ImportGroup>
</Project>