# Copyright (c) 2023 Klemens D. Morgenstern # # Distributed under the Boost Software License, Version 1.0. (See accompanying # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) import os ; import feature ; import ../../config/checks/config : requires ; project : requirements BOOST_ASIO_NO_DEPRECATED msvc:_SCL_SECURE_NO_WARNINGS msvc:_CRT_SECURE_NO_DEPRECATE msvc:/bigobj windows:WIN32_LEAN_AND_MEAN linux:-lpthread : source-location ../src ; feature.feature boost.cobalt.pmr : std boost-container custom no : propagated composite ; feature.compose std : BOOST_COBALT_USE_STD_PMR=1 ; feature.compose boost-container : BOOST_COBALT_USE_BOOST_CONTAINER_PMR=1 ; feature.compose custom : BOOST_COBALT_USE_CUSTOM_PMR=1 ; feature.compose no : BOOST_COBALT_NO_PMR=1 ; feature.feature boost.cobalt.executor : any_io_executor use_io_context custom : propagated composite ; feature.compose any_io_executor : ; feature.compose use_io_context : BOOST_COBALT_USE_IO_CONTEXT=1 ; feature.compose custom_executor : BOOST_COBALT_CUSTOM_EXECUTOR=1 ; local config-binding = [ modules.binding config ] ; config-binding ?= "" ; alias cobalt_sources : detail/exception.cpp detail/util.cpp channel.cpp error.cpp main.cpp this_thread.cpp thread.cpp ; explicit cobalt_sources ; lib boost_cobalt : cobalt_sources : requirements BOOST_COBALT_SOURCE=1 shared:BOOST_COBALT_DYN_LINK=1 [ requires cxx20_hdr_concepts ] boost-container:/boost//container [ check-target-builds $(config-binding:D)//cpp_lib_memory_resource cpp_lib_memory_resource : @set-pmr-std : @set-pmr-boost ] : usage-requirements boost-container:/boost//container shared:BOOST_COBALT_DYN_LINK=1 [ check-target-builds $(config-binding:D)//cpp_lib_memory_resource cpp_lib_memory_resource : @set-pmr-std : @set-pmr-boost ] ; rule set-pmr-boost ( props * ) { if ! in $(props:G) { return boost-container ; } if boost-container in $(props) { return boost-container ; } } rule set-pmr-std ( props * ) { if ! in $(props:G) { return std ; } if std in $(props) { return std ; } } boost-install boost_cobalt ;