File: Jamfile.v2

package info (click to toggle)
boost1.74 1.74.0-9
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 464,084 kB
  • sloc: cpp: 3,338,324; xml: 131,293; python: 33,088; ansic: 14,336; asm: 4,034; sh: 3,351; makefile: 1,193; perl: 1,036; yacc: 478; php: 212; ruby: 102; lisp: 24; sql: 13; csh: 6
file content (83 lines) | stat: -rw-r--r-- 2,472 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# 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 ;