Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.

libs/beast/Jamfile

#
# Copyright (c) 2013-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
#
# 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)
#
# Official repository: https://github.com/boostorg/beast
#

import os ;
import feature ;
import boost ;
import modules ;
import testing ;

boost.use-project ;

if [ os.name ] = SOLARIS
{
    lib socket ;
    lib nsl ;
}
else if [ os.name ] = NT
{
    lib ws2_32 ;
    lib mswsock ;
}
else if [ os.name ] = HPUX
{
    lib ipv6 ;
}
else if [ os.name ] = QNXNTO
{
    lib socket ;
}
else if [ os.name ] = HAIKU
{
    lib network ;
}

if [ os.name ] = NT
{
    lib ssl : : <name>ssleay32 ;
    lib crypto : : <name>libeay32 ;
}
else
{
    lib ssl ;
    lib crypto ;
}

variant coverage
  : debug
  : <cxxflags>"-msse4.2 --coverage"
    <linkflags>"--coverage"
  ;

variant valgrind
  : release
  : <valgrind>on # Boost.Context uses this property
  ;

variant ubasan
  : release
  : <cxxflags>"-msse4.2 -funsigned-char -fno-omit-frame-pointer -fsanitize=address,undefined -fno-sanitize-recover=address,undefined -fsanitize-blacklist=libs/beast/tools/blacklist.supp"
    <linkflags>"-fsanitize=address,undefined"
    <define>BOOST_USE_ASAN=1
  ;

path-constant TEST_MAIN : subtree/unit_test/include/boost/beast/unit_test/main.cpp ;

project /boost/beast
  : requirements
    <implicit-dependency>/boost//headers
    <include>.
    <include>./test/extras/include
    <include>./subtree/unit_test/include
    <library>/boost/system//boost_system
    <library>/boost/coroutine//boost_coroutine
    <library>/boost/filesystem//boost_filesystem
    <threading>multi
    <runtime-link>shared
    <debug-symbols>on
    <define>BOOST_ALL_NO_LIB=1
    <define>BOOST_ASIO_DISABLE_BOOST_ARRAY=1
    <define>BOOST_ASIO_DISABLE_BOOST_BIND=1
    <define>BOOST_ASIO_DISABLE_BOOST_DATE_TIME=1
    <define>BOOST_ASIO_DISABLE_BOOST_REGEX=1
    #<define>BOOST_ASIO_NO_DEPRECATED=1 # some tests use deprecated strand
    <define>BOOST_COROUTINES_NO_DEPRECATION_WARNING=1
    <toolset>msvc:<cxxflags>"/bigobj /permissive-"
    <toolset>msvc:<define>_SCL_SECURE_NO_WARNINGS=1
    <toolset>msvc:<define>_CRT_SECURE_NO_WARNINGS=1
    <toolset>msvc,<variant>release:<cxxflags>"/Ob2 /Oi /Ot"
    <os>SOLARIS:<library>socket
    <os>SOLARIS:<library>nsl
    <os>NT:<define>_WIN32_WINNT=0x0601
    <os>NT,<toolset>cw:<library>ws2_32
    <os>NT,<toolset>cw:<library>mswsock
    <os>NT,<toolset>gcc:<library>ws2_32
    <os>NT,<toolset>gcc:<library>mswsock
    <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
  : usage-requirements
  ;