constant BOOST_VERSION : 1.79.0 ;
constant BOOST_VERSION_ABI_TAG : 1_79 ;
constant BOOST_JAMROOT_MODULE : $(__name__) ;

import boostcpp ;
import feature ;

boostcpp.set-version $(BOOST_VERSION) ;

project boost : requirements
    <include>include&&"D:/a/1/s/build/vcpkg_installed/x64-windows/include"
    <define>BOOST_ALL_NO_LIB=1
    <tag>@$(__name__).tag
    <library>/boost/date_time//boost_date_time
    ;

rule boost-install ( libraries * )
{
    stagedir = [ option.get stagedir ] ;
    install stage
        : $(libraries)
        : <location>$(stagedir)/lib ;
}

rule tag ( name : type ? : property-set )
{
    return [ boostcpp.tag $(name) : $(type) : $(property-set) ] ;
}

rule python-tag ( name : type ? : property-set )
{
    return [ boostcpp.python-tag $(name) : $(type) : $(property-set) ] ;
}

if "boost-thread" != "boost-system"
{
    use-project /boost/system : . ;

    lib boost_system : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/lib/boost_system-vc140-mt.lib" <variant>release ;
    lib boost_system : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/debug/lib/boost_system-vc140-mt-gd.lib" <variant>debug ;
    explicit boost_system ;

    use-project /boost : . ;
    alias system : boost_system ;
}

if "boost-thread" != "boost-chrono"
{
    use-project /boost/chrono : . ;

    lib boost_chrono : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/lib/boost_chrono-vc140-mt.lib" <variant>release ;
    lib boost_chrono : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/debug/lib/boost_chrono-vc140-mt-gd.lib" <variant>debug ;
    explicit boost_chrono ;
}

if "boost-thread" != "boost-regex"
{
    use-project /boost/regex : . ;

    lib boost_regex : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/lib/boost_regex-vc140-mt.lib" <variant>release ;
    lib boost_regex : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/debug/lib/boost_regex-vc140-mt-gd.lib" <variant>debug ;
    explicit boost_regex ;
}

if "boost-thread" != "boost-date-time"
{
    use-project /boost/date_time : . ;

    lib boost_date_time : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/lib/boost_date_time-vc140-mt.lib" <variant>release -<library>/boost/date_time//boost_date_time ;
    lib boost_date_time : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/debug/lib/boost_date_time-vc140-mt-gd.lib" <variant>debug -<library>/boost/date_time//boost_date_time ;
    explicit boost_date_time ;
}

if "boost-thread" != "boost-thread"
{
    use-project /boost/thread : . ;

    lib boost_thread : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/lib/boost_thread-vc140-mt.lib" <variant>release : : <library>/boost/date_time//boost_date_time ;
    lib boost_thread : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/debug/lib/boost_thread-vc140-mt-gd.lib" <variant>debug : : <library>/boost/date_time//boost_date_time ;
    explicit boost_thread ;
}

if "boost-thread" != "boost-timer"
{
    use-project /boost/timer : . ;

    lib boost_timer : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/lib/boost_timer-vc140-mt.lib" <variant>release ;
    lib boost_timer : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/debug/lib/boost_timer-vc140-mt-gd.lib" <variant>debug ;
    explicit boost_timer ;
}

if "boost-thread" != "boost-filesystem"
{
    use-project /boost/filesystem : . ;

    lib boost_filesystem : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/lib/boost_filesystem-vc140-mt.lib" <variant>release : : <library>/boost/system//boost_system ;
    lib boost_filesystem : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/debug/lib/boost_filesystem-vc140-mt-gd.lib" <variant>debug : : <library>/boost/system//boost_system ;
    explicit boost_filesystem ;
}

if "boost-thread" != "boost-atomic"
{
    use-project /boost/atomic : . ;

    lib boost_atomic : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/lib/boost_atomic-vc140-mt.lib" <variant>release ;
    lib boost_atomic : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/debug/lib/boost_atomic-vc140-mt-gd.lib" <variant>debug ;
    explicit boost_atomic ;
}

if "boost-thread" != "boost-context"
{
    feature.feature segmented-stacks : on : optional propagated composite ;
    feature.compose <segmented-stacks>on : <define>BOOST_USE_SEGMENTED_STACKS ;

    use-project /boost/context : . ;

    lib boost_context : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/lib/boost_context-vc140-mt.lib" <variant>release ;
    lib boost_context : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/debug/lib/boost_context-vc140-mt-gd.lib" <variant>debug ;
    explicit boost_context ;
}

if "boost-thread" != "boost-test"
{
    use-project /boost/test : . ;

    lib boost_unit_test_framework : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/lib/boost_unit_test_framework-vc140-mt.lib" <variant>release ;
    lib boost_unit_test_framework : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/debug/lib/boost_unit_test_framework-vc140-mt-gd.lib" <variant>debug ;
    explicit boost_unit_test_framework ;
}

if "boost-thread" != "boost-serialization"
{
    use-project /boost/serialization : . ;

    lib boost_serialization : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/lib/boost_serialization-vc140-mt.lib" <variant>release ;
    lib boost_serialization : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/debug/lib/boost_serialization-vc140-mt-gd.lib" <variant>debug ;
    explicit boost_serialization ;
}

if "boost-thread" != "boost-mpi"
{
    use-project /boost/mpi : . ;

    lib boost_mpi : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/lib/boost_mpi-vc140-mt.lib" <variant>release : : <library>/boost/serialization//boost_serialization ;
    lib boost_mpi : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/debug/lib/boost_mpi-vc140-mt-gd.lib" <variant>debug : : <library>/boost/serialization//boost_serialization ;
    explicit boost_mpi ;
}

if "boost-thread" != "boost-container"
{
    use-project /boost/container : . ;

    lib boost_container : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/lib/boost_container-vc140-mt.lib" <variant>release ;
    lib boost_container : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/debug/lib/boost_container-vc140-mt-gd.lib" <variant>debug ;
    explicit boost_container ;
}

if "boost-thread" != "boost-python"
{
    use-project /boost/python : . ;

    lib boost_python : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/lib/boost_python-vc140-mt.lib" <variant>release ;
    lib boost_python : : <file>"D:/a/1/s/build/vcpkg_installed/x64-windows/debug/lib/boost_python-vc140-mt-gd.lib" <variant>debug ;
    explicit boost_python ;
}

rule requires ( foo * )
{
}

rule boost-lib ( name : sources * : requirements * : default-build * : usage-requirements * )
{
    name = boost_$(name) ;
    lib $(name) : $(sources) : $(requirements) : $(default-build) : $(usage-requirements) ;
    boost-install $(name) ;
}

use-project /boost/boost-thread : build ;

build-project build ;
