<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup Label="Globals">
    <ProjectGuid>{A649D828-A399-4D81-ADEF-94CFDBA7847F}</ProjectGuid>
    <RootNamespace>boost</RootNamespace>
  </PropertyGroup>

  <!-- Aegisub project configuration -->
  <PropertyGroup Label="AegisubConfiguration">
    <AegisubProjectType>lib</AegisubProjectType>
  </PropertyGroup>
  <ImportGroup Label="PropertySheets">
    <Import Project="$(MSBuildThisFileDirectory)..\aegisub.props" />
  </ImportGroup>

  <!-- Project specific configuration -->
  <ItemDefinitionGroup>
    <ClCompile>
      <PreprocessorDefinitions>
        BOOST_LOCALE_WITH_ICONV=1;
        BOOST_LOCALE_WITH_ICU=1;
        BOOST_LOCALE_NO_STD_BACKEND=1;
        BOOST_LOCALE_NO_WINAPI_BACKEND=1;
        BOOST_LOCALE_NO_POSIX_BACKEND=1;
        BOOST_THREAD_BUILD_LIB;
        %(PreprocessorDefinitions)
      </PreprocessorDefinitions>
    </ClCompile>
  </ItemDefinitionGroup>

  <PropertyGroup>
    <BuildGenerateSourcesTargets>
      $(BuildGenerateSourcesTargets);
      CopyBoostHeaders
    </BuildGenerateSourcesTargets>
  </PropertyGroup>
  <!-- Have the target depend on the boost version.hpp file so it will usually
       be skipped if the boost version hasn't changed since last build. -->
  <Target
    Name="CopyBoostHeaders"
    Inputs="$(BoostPath)\libs\config\include\boost\version.hpp"
    Outputs="$(AegisubSourceBase)include\boost\version.hpp"
    >
    <Message Importance="High" Text="Copy boost headers" />
    <!-- All this cruft is to work around that despite what the documentation
         claims, %(RecursiveDir) matches everything from the first * (not even
         **) until the last / -->
    <ItemGroup>
      <BoostLibraries Include="$([System.IO.Directory]::GetDirectories(&quot;$(BoostPath)\libs&quot;))" />
      <BoostIncludeDirs Include="%(BoostLibraries.Identity)\include\boost;$(BoostPath)\libs\numeric\conversion\include\boost" />
      <Headers Include="%(BoostIncludeDirs.Identity)\**\*.*" />
    </ItemGroup>
    <Copy
      SourceFiles="@(Headers)"
      DestinationFiles="@(Headers->'$(AegisubSourceBase)include\boost\%(RecursiveDir)%(Filename)%(Extension)')"
      SkipUnchangedFiles="true"
      />
  </Target>

  <!-- Project References -->
  <ItemGroup>
    <ProjectReference Include="..\icu\icu.vcxproj">
      <Project>{f934ab7b-186b-4e96-b20c-a58c38c1b818}</Project>
    </ProjectReference>
    <ProjectReference Include="..\libiconv\libiconv.vcxproj">
      <Project>{965054d2-44f2-4eb2-9879-051cc3d7ef08}</Project>
    </ProjectReference>
  </ItemGroup>

  <!-- Source files -->
  <ItemGroup>
    <ClCompile Include="$(BoostPath)\libs\filesystem\src\codecvt_error_category.cpp" />
    <ClCompile Include="$(BoostPath)\libs\filesystem\src\operations.cpp" />
    <ClCompile Include="$(BoostPath)\libs\filesystem\src\path.cpp" />
    <ClCompile Include="$(BoostPath)\libs\filesystem\src\path_traits.cpp" />
    <ClCompile Include="$(BoostPath)\libs\filesystem\src\portability.cpp" />
    <ClCompile Include="$(BoostPath)\libs\filesystem\src\unique_path.cpp" />
    <ClCompile Include="$(BoostPath)\libs\filesystem\src\utf8_codecvt_facet.cpp" />
    <ClCompile Include="$(BoostPath)\libs\filesystem\src\windows_file_codecvt.cpp" />
    <ClCompile Include="$(BoostPath)\libs\locale\src\encoding\codepage.cpp" />
    <ClCompile Include="$(BoostPath)\libs\locale\src\icu\boundary.cpp" />
    <ClCompile Include="$(BoostPath)\libs\locale\src\icu\codecvt.cpp" />
    <ClCompile Include="$(BoostPath)\libs\locale\src\icu\collator.cpp" />
    <ClCompile Include="$(BoostPath)\libs\locale\src\icu\conversion.cpp" />
    <ClCompile Include="$(BoostPath)\libs\locale\src\icu\icu_backend.cpp" />
    <ClCompile Include="$(BoostPath)\libs\locale\src\shared\generator.cpp" />
    <ClCompile Include="$(BoostPath)\libs\locale\src\shared\ids.cpp" />
    <ClCompile Include="$(BoostPath)\libs\locale\src\shared\localization_backend.cpp" />
    <ClCompile Include="$(BoostPath)\libs\locale\src\util\codecvt_converter.cpp" />
    <ClCompile Include="$(BoostPath)\libs\locale\src\util\default_locale.cpp" />
    <ClCompile Include="$(BoostPath)\libs\locale\src\util\info.cpp" />
    <ClCompile Include="$(BoostPath)\libs\locale\src\util\locale_data.cpp" />
    <ClCompile Include="$(BoostPath)\libs\regex\src\c_regex_traits.cpp" />
    <ClCompile Include="$(BoostPath)\libs\regex\src\cpp_regex_traits.cpp" />
    <ClCompile Include="$(BoostPath)\libs\regex\src\cregex.cpp" />
    <ClCompile Include="$(BoostPath)\libs\regex\src\fileiter.cpp" />
    <ClCompile Include="$(BoostPath)\libs\regex\src\icu.cpp" />
    <ClCompile Include="$(BoostPath)\libs\regex\src\instances.cpp" />
    <ClCompile Include="$(BoostPath)\libs\regex\src\posix_api.cpp" />
    <ClCompile Include="$(BoostPath)\libs\regex\src\regex.cpp" />
    <ClCompile Include="$(BoostPath)\libs\regex\src\regex_raw_buffer.cpp" />
    <ClCompile Include="$(BoostPath)\libs\regex\src\regex_traits_defaults.cpp" />
    <ClCompile Include="$(BoostPath)\libs\regex\src\static_mutex.cpp" />
    <ClCompile Include="$(BoostPath)\libs\regex\src\usinstances.cpp" />
    <ClCompile Include="$(BoostPath)\libs\regex\src\w32_regex_traits.cpp" />
    <ClCompile Include="$(BoostPath)\libs\regex\src\wc_regex_traits.cpp" />
    <ClCompile Include="$(BoostPath)\libs\regex\src\wide_posix_api.cpp" />
    <ClCompile Include="$(BoostPath)\libs\regex\src\winstances.cpp" />
    <ClCompile Include="$(BoostPath)\libs\system\src\error_code.cpp" />
    <ClCompile Include="$(BoostPath)\libs\thread\src\win32\thread.cpp" />
    <ClCompile Include="$(BoostPath)\libs\thread\src\win32\tss_pe.cpp" />
    <ClCompile Include="$(MSBuildThisFileDirectory)locale_stubs.cpp" />
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="$(BoostPath)\libs\filesystem\src\windows_file_codecvt.hpp" />
    <ClInclude Include="$(BoostPath)\libs\locale\src\encoding\conv.hpp" />
    <ClInclude Include="$(BoostPath)\libs\locale\src\icu\all_generator.hpp" />
    <ClInclude Include="$(BoostPath)\libs\locale\src\icu\cdata.hpp" />
    <ClInclude Include="$(BoostPath)\libs\locale\src\icu\codecvt.hpp" />
    <ClInclude Include="$(BoostPath)\libs\locale\src\icu\icu_backend.hpp" />
    <ClInclude Include="$(BoostPath)\libs\locale\src\icu\icu_util.hpp" />
    <ClInclude Include="$(BoostPath)\libs\locale\src\icu\predefined_formatters.hpp" />
    <ClInclude Include="$(BoostPath)\libs\locale\src\icu\uconv.hpp" />
    <ClInclude Include="$(BoostPath)\libs\locale\src\shared\ios_prop.hpp" />
    <ClInclude Include="$(BoostPath)\libs\locale\src\shared\mo_hash.hpp" />
    <ClInclude Include="$(BoostPath)\libs\locale\src\shared\mo_lambda.hpp" />
    <ClInclude Include="$(BoostPath)\libs\locale\src\util\gregorian.hpp" />
    <ClInclude Include="$(BoostPath)\libs\locale\src\util\iconv.hpp" />
    <ClInclude Include="$(BoostPath)\libs\locale\src\util\locale_data.hpp" />
    <ClInclude Include="$(BoostPath)\libs\locale\src\util\numeric.hpp" />
    <ClInclude Include="$(BoostPath)\libs\locale\src\util\timezone.hpp" />
    <ClInclude Include="$(BoostPath)\libs\regex\src\internals.hpp" />
  </ItemGroup>
  <ItemGroup>
    <None Include="$(BoostPath)\libs\locale\src\encoding\iconv_codepage.ipp" />
    <None Include="$(BoostPath)\libs\locale\src\encoding\uconv_codepage.ipp" />
    <None Include="$(BoostPath)\libs\locale\src\encoding\wconv_codepage.ipp" />
  </ItemGroup>
</Project>
