<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup Label="ProjectConfigurations">
    <ProjectConfiguration Include="Debug|Win32">
      <Configuration>Debug</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|Win32">
      <Configuration>Release</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Debug|x64">
      <Configuration>Debug</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|x64">
      <Configuration>Release</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
  </ItemGroup>
  <PropertyGroup Label="Globals">
    <VCProjectVersion>15.0</VCProjectVersion>
    <ProjectGuid>{C1D4A6BD-592F-4E48-8178-7C87219BF80E}</ProjectGuid>
    <Keyword>Win32Proj</Keyword>
    <RootNamespace>librf</RootNamespace>
    <WindowsTargetPlatformVersion>10.0.18362.0</WindowsTargetPlatformVersion>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <PlatformToolset>v141</PlatformToolset>
    <UseDebugLibraries>true</UseDebugLibraries>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <UseDebugLibraries>false</UseDebugLibraries>
    <PlatformToolset>v141</PlatformToolset>
    <WholeProgramOptimization>true</WholeProgramOptimization>
    <CharacterSet>NotSet</CharacterSet>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <PlatformToolset>ClangCL</PlatformToolset>
    <UseDebugLibraries>true</UseDebugLibraries>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <UseDebugLibraries>false</UseDebugLibraries>
    <PlatformToolset>ClangCL</PlatformToolset>
    <WholeProgramOptimization>true</WholeProgramOptimization>
    <CharacterSet>NotSet</CharacterSet>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
  <ImportGroup Label="ExtensionSettings">
  </ImportGroup>
  <ImportGroup Label="Shared">
  </ImportGroup>
  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <LinkIncremental>true</LinkIncremental>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
    <LinkIncremental>true</LinkIncremental>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
    <CodeAnalysisRuleSet>NativeRecommendedRules.ruleset</CodeAnalysisRuleSet>
    <EnableClangTidyCodeAnalysis>true</EnableClangTidyCodeAnalysis>
  </PropertyGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <ClCompile>
      <WarningLevel>Level4</WarningLevel>
      <Optimization>Disabled</Optimization>
      <PreprocessorDefinitions>_CONSOLE;ASIO_STANDALONE;_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING=1;ASIO_DISABLE_CONCEPTS=1;RESUMEF_ENABLE_MULT_SCHEDULER=1;_DEBUG;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <AdditionalIncludeDirectories>..\librf;..\..\asio\asio\include;..\..\asio-1.10.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <AdditionalOptions>/await</AdditionalOptions>
      <MultiProcessorCompilation>true</MultiProcessorCompilation>
      <LanguageStandard>stdcpp17</LanguageStandard>
      <OmitFramePointers />
      <DisableSpecificWarnings>4834</DisableSpecificWarnings>
      <SDLCheck>true</SDLCheck>
      <StringPooling>true</StringPooling>
    </ClCompile>
    <Link>
      <SubSystem>Console</SubSystem>
      <GenerateDebugInformation>true</GenerateDebugInformation>
    </Link>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
    <ClCompile>
      <WarningLevel>Level4</WarningLevel>
      <Optimization>Disabled</Optimization>
      <PreprocessorDefinitions>_CONSOLE;ASIO_STANDALONE;_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING=1;ASIO_DISABLE_CONCEPTS=1;RESUMEF_ENABLE_MULT_SCHEDULER=1;RESUMEF_DEBUG_COUNTER=0;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <AdditionalIncludeDirectories>..\librf;..\..\asio\asio\include;..\..\asio-1.10.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <AdditionalOptions>/await</AdditionalOptions>
      <MultiProcessorCompilation>true</MultiProcessorCompilation>
      <LanguageStandard>stdcpplatest</LanguageStandard>
      <CLanguageStandard>c11</CLanguageStandard>
      <CppLanguageStandard>c++1y</CppLanguageStandard>
      <DisableSpecificWarnings>4834</DisableSpecificWarnings>
      <EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
    </ClCompile>
    <Link>
      <SubSystem>Console</SubSystem>
      <GenerateDebugInformation>true</GenerateDebugInformation>
    </Link>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <ClCompile>
      <WarningLevel>Level4</WarningLevel>
      <Optimization>Full</Optimization>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <PreprocessorDefinitions>_CONSOLE;ASIO_STANDALONE;_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING=1;ASIO_DISABLE_CONCEPTS=1;RESUMEF_ENABLE_MULT_SCHEDULER=1;NDEBUG;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <SDLCheck>
      </SDLCheck>
      <AdditionalIncludeDirectories>..\librf;..\..\asio\asio\include;..\..\asio-1.10.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <AdditionalOptions>/await</AdditionalOptions>
      <MultiProcessorCompilation>true</MultiProcessorCompilation>
      <LanguageStandard>stdcpp17</LanguageStandard>
      <StringPooling>true</StringPooling>
      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
      <OmitFramePointers>true</OmitFramePointers>
      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
      <BufferSecurityCheck>false</BufferSecurityCheck>
    </ClCompile>
    <Link>
      <SubSystem>Console</SubSystem>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <OptimizeReferences>true</OptimizeReferences>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <Profile>
      </Profile>
    </Link>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
    <ClCompile>
      <WarningLevel>Level4</WarningLevel>
      <Optimization>Full</Optimization>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <PreprocessorDefinitions>_CONSOLE;ASIO_STANDALONE;_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING=1;ASIO_DISABLE_CONCEPTS=1;RESUMEF_ENABLE_MULT_SCHEDULER=1;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <AdditionalIncludeDirectories>..\librf;..\..\asio\asio\include;..\..\asio-1.10.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <AdditionalOptions>/await</AdditionalOptions>
      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
      <StringPooling>true</StringPooling>
      <LanguageStandard>stdcpplatest</LanguageStandard>
      <MultiProcessorCompilation>true</MultiProcessorCompilation>
      <SDLCheck>
      </SDLCheck>
      <EnablePREfast>false</EnablePREfast>
      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
      <OmitFramePointers>true</OmitFramePointers>
      <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
      <BufferSecurityCheck>false</BufferSecurityCheck>
      <EnableParallelCodeGeneration>true</EnableParallelCodeGeneration>
    </ClCompile>
    <Link>
      <SubSystem>Console</SubSystem>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <OptimizeReferences>true</OptimizeReferences>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
      <Profile>
      </Profile>
    </Link>
  </ItemDefinitionGroup>
  <ItemGroup>
    <ClCompile Include="..\benchmark\benchmark_asio_echo.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\benchmark\benchmark_async_mem.cpp" />
    <ClCompile Include="..\benchmark\benchmark_channel_passing_next.cpp" />
    <ClCompile Include="..\librf\src\event_v1.cpp" />
    <ClCompile Include="..\librf\src\event_v2.cpp" />
    <ClCompile Include="..\librf\src\mutex_v1.cpp" />
    <ClCompile Include="..\librf\src\mutex_v2.cpp" />
    <ClCompile Include="..\librf\src\rf_task.cpp" />
    <ClCompile Include="..\librf\src\scheduler.cpp" />
    <ClCompile Include="..\librf\src\sleep.cpp" />
    <ClCompile Include="..\librf\src\state.cpp" />
    <ClCompile Include="..\librf\src\timer.cpp" />
    <ClCompile Include="..\librf\src\when_v2.cpp" />
    <ClCompile Include="..\tutorial\test_async_cb.cpp" />
    <ClCompile Include="..\tutorial\test_async_channel.cpp" />
    <ClCompile Include="..\tutorial\test_async_channel_mult_thread.cpp" />
    <ClCompile Include="..\tutorial\test_async_dynamic_go.cpp" />
    <ClCompile Include="..\tutorial\test_async_event.cpp" />
    <ClCompile Include="..\tutorial\test_async_event_timeout.cpp" />
    <ClCompile Include="..\tutorial\test_async_event_v2.cpp" />
    <ClCompile Include="..\tutorial\test_async_exception.cpp" />
    <ClCompile Include="..\tutorial\test_async_memory_layout.cpp" />
    <ClCompile Include="..\tutorial\test_async_modern_cb.cpp" />
    <ClCompile Include="..\tutorial\test_async_multi_thread.cpp" />
    <ClCompile Include="..\tutorial\test_async_mutex.cpp" />
    <ClCompile Include="..\tutorial\test_async_resumable.cpp" />
    <ClCompile Include="..\tutorial\test_async_routine.cpp" />
    <ClCompile Include="..\tutorial\test_async_sleep.cpp" />
    <ClCompile Include="..\tutorial\test_async_suspend_always.cpp" />
    <ClCompile Include="..\tutorial\test_async_switch_scheduler.cpp" />
    <ClCompile Include="..\tutorial\test_async_timer.cpp" />
    <ClCompile Include="..\tutorial\test_async_when_all.cpp" />
    <ClCompile Include="..\tutorial\test_async_yield_return.cpp" />
    <ClCompile Include="librf.cpp">
      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Default</BasicRuntimeChecks>
      <BufferSecurityCheck Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</BufferSecurityCheck>
      <SDLCheck Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</SDLCheck>
    </ClCompile>
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="..\librf\librf.h" />
    <ClInclude Include="..\librf\librf_macro.h" />
    <ClInclude Include="..\librf\src\asio_task.h" />
    <ClInclude Include="..\librf\src\awaitable.h" />
    <ClInclude Include="..\librf\src\channel.h" />
    <ClInclude Include="..\librf\src\channel_v1.h" />
    <ClInclude Include="..\librf\src\channel_v2.h" />
    <ClInclude Include="..\librf\src\counted_ptr.h" />
    <ClInclude Include="..\librf\src\current_scheduler.h" />
    <ClInclude Include="..\librf\src\def.h" />
    <ClInclude Include="..\librf\src\event.h" />
    <ClInclude Include="..\librf\src\event_v1.h" />
    <ClInclude Include="..\librf\src\event_v2.h" />
    <ClInclude Include="..\librf\src\future.h" />
    <ClInclude Include="..\librf\src\generator.h" />
    <ClInclude Include="..\librf\src\intrusive_link_queue.h" />
    <ClInclude Include="..\librf\src\mutex_v1.h" />
    <ClInclude Include="..\librf\src\mutex_v2.h" />
    <ClInclude Include="..\librf\src\promise.h" />
    <ClInclude Include="..\librf\src\mutex.h" />
    <ClInclude Include="..\librf\src\rf_task.h" />
    <ClInclude Include="..\librf\src\ring_queue_lockfree.h" />
    <ClInclude Include="..\librf\src\ring_queue.h" />
    <ClInclude Include="..\librf\src\ring_queue_spinlock.h" />
    <ClInclude Include="..\librf\src\scheduler.h" />
    <ClInclude Include="..\librf\src\sleep.h" />
    <ClInclude Include="..\librf\src\spinlock.h" />
    <ClInclude Include="..\librf\src\state.h" />
    <ClInclude Include="..\librf\src\switch_scheduler.h" />
    <ClInclude Include="..\librf\src\timer.h" />
    <ClInclude Include="..\librf\src\unix\clang_builtin.h" />
    <ClInclude Include="..\librf\src\unix\coroutine.h" />
    <ClInclude Include="..\librf\src\when.h" />
    <ClInclude Include="..\librf\src\when_v2.h" />
    <ClInclude Include="..\librf\src\_awaker.h" />
    <ClInclude Include="..\tutorial\test_ring_queue.h" />
    <ClInclude Include="dcas.h" />
  </ItemGroup>
  <ItemGroup>
    <None Include="..\librf\src\asio_task_1.10.0.inl" />
    <None Include="..\librf\src\asio_task_1.12.0.inl" />
    <None Include="..\librf\src\channel_v2.inl" />
    <None Include="..\librf\src\event_v2.inl" />
    <None Include="..\librf\src\exception.inl" />
    <None Include="..\librf\src\macro_def.inl" />
    <None Include="..\librf\src\mutex_v2.inl" />
    <None Include="..\librf\src\promise.inl" />
    <None Include="..\librf\src\state.inl" />
    <None Include="..\librf\src\type_concept.inl" />
    <None Include="..\librf\src\type_traits.inl" />
    <None Include="..\README.md" />
  </ItemGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
  <ImportGroup Label="ExtensionTargets">
  </ImportGroup>
</Project>