libs/filesystem/build/Jamfile.v2
# Boost Filesystem Library Build Jamfile
# (C) Copyright Beman Dawes 2002-2006
# (C) Copyright Andrey Semashev 2020
# Distributed under the Boost Software License, Version 1.0.
# See www.boost.org/LICENSE_1_0.txt
# See library home page at http://www.boost.org/libs/filesystem
import project ;
import configure ;
lib bcrypt ;
lib advapi32 ;
lib coredll ;
explicit bcrypt advapi32 coredll ;
# The rule checks we're building for Windows and selects crypto API to be used
rule select-windows-crypto-api ( properties * )
{
local result ;
if <target-os>windows in $(properties) || <target-os>cygwin in $(properties)
{
if [ configure.builds ../config//has_bcrypt : $(properties) : "has BCrypt API" ]
{
result = <define>BOOST_FILESYSTEM_HAS_BCRYPT <library>bcrypt ;
}
else
{
result = <define>BOOST_FILESYSTEM_HAS_WINCRYPT ;
if [ configure.builds ../config//is_windows_ce : $(properties) : "is Windows CE" ]
{
result += <library>coredll ;
}
else
{
result += <library>advapi32 ;
}
}
}
#ECHO Result: $(result) ;
return $(result) ;
}
project boost/filesystem
: requirements
<host-os>hpux,<toolset>gcc:<define>_INCLUDE_STDC__SOURCE_199901
[ check-target-builds ../config//has_stat_st_mtim "has stat::st_mtim" : <define>BOOST_FILESYSTEM_HAS_STAT_ST_MTIM ]
[ check-target-builds ../config//has_stat_st_mtimensec "has stat::st_mtimensec" : <define>BOOST_FILESYSTEM_HAS_STAT_ST_MTIMENSEC ]
[ check-target-builds ../config//has_stat_st_mtimespec "has stat::st_mtimespec" : <define>BOOST_FILESYSTEM_HAS_STAT_ST_MTIMESPEC ]
<conditional>@select-windows-crypto-api
: source-location ../src
: usage-requirements # pass these requirement to dependents (i.e. users)
<link>shared:<define>BOOST_FILESYSTEM_DYN_LINK=1
<link>static:<define>BOOST_FILESYSTEM_STATIC_LINK=1
;
SOURCES =
codecvt_error_category
exception
directory
operations
path
path_traits
portability
unique_path
utf8_codecvt_facet
windows_file_codecvt
;
lib boost_filesystem
: $(SOURCES).cpp
: <define>BOOST_FILESYSTEM_SOURCE
<include>../src
<link>shared:<define>BOOST_FILESYSTEM_DYN_LINK=1
<link>static:<define>BOOST_FILESYSTEM_STATIC_LINK=1
:
:
;
boost-install boost_filesystem ;