Blame view

3rdparty/boost_1_81_0/libs/fiber/build/Jamfile.v2 3.76 KB
977ed18d   Hu Chunming   提交三方库
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
  # Boost.Fiber Library Build Jamfile
  
  #          Copyright Oliver Kowalke 2013.
  # 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 feature ;
  import modules ;
  import testing ;
  import toolset ;
  import ../../config/checks/config : requires ;
  
  feature.feature numa : on : optional propagated composite ;
  feature.compose <numa>on : <define>BOOST_USE_NUMA ;
  
  project boost/fiber
      : requirements
        <library>/boost/context//boost_context
        <library>/boost/filesystem//boost_filesystem
        <target-os>solaris:<linkflags>"-llgrp"
        <target-os>windows:<define>_WIN32_WINNT=0x0601
        <target-os>linux,<toolset>gcc,<segmented-stacks>on:<cxxflags>-fsplit-stack
        <target-os>linux,<toolset>gcc,<segmented-stacks>on:<cxxflags>-DBOOST_USE_SEGMENTED_STACKS
        <toolset>clang,<segmented-stacks>on:<cxxflags>-fsplit-stack
        <toolset>clang,<segmented-stacks>on:<cxxflags>-DBOOST_USE_SEGMENTED_STACKS
        <link>shared:<define>BOOST_FIBERS_DYN_LINK=1
        <define>BOOST_FIBERS_SOURCE
        <threading>multi
      : usage-requirements
        <link>shared:<define>BOOST_FIBERS_DYN_LINK=1
        <optimization>speed:<define>BOOST_DISABLE_ASSERTS
        <variant>release:<define>BOOST_DISABLE_ASSERTS
      : source-location ../src
      ;
  
  rule numa ( properties * )
  {
      local result  ;
      if ( <numa>on in $(properties) )
      {
          result = <numa>on ;
      }
      else
      {
          result = <build>no ;
      }
      return $(result) ;
  }
  
  lib boost_fiber
      : algo/algorithm.cpp
        algo/round_robin.cpp
        algo/shared_work.cpp
        algo/work_stealing.cpp
        barrier.cpp
        condition_variable.cpp
        context.cpp
        fiber.cpp
        waker.cpp
        future.cpp
        mutex.cpp
        properties.cpp
        recursive_mutex.cpp
        recursive_timed_mutex.cpp
        timed_mutex.cpp
        scheduler.cpp
      : <link>shared:<library>../../context/build//boost_context
      [ requires cxx11_auto_declarations
                 cxx11_constexpr
                 cxx11_defaulted_functions
                 cxx11_final
                 cxx11_hdr_mutex
                 cxx11_hdr_tuple
                 cxx11_lambdas
                 cxx11_noexcept
                 cxx11_nullptr
                 cxx11_rvalue_references
                 cxx11_template_aliases
                 cxx11_thread_local
                 cxx11_variadic_templates ]
      ;
  
  
  alias numa_sources
      : numa/aix/pin_thread.cpp
        numa/aix/topology.cpp
      : <target-os>aix
      ;
  
  alias numa_sources
      : numa/freebsd/pin_thread.cpp
        numa/freebsd/topology.cpp
      : <target-os>freebsd
      ;
  
  alias numa_sources
      : numa/hpux/pin_thread.cpp
        numa/hpux/topology.cpp
      : <target-os>hpux
      ;
  
  alias numa_sources
      : numa/linux/pin_thread.cpp
        numa/linux/topology.cpp
      : <target-os>linux
      ;
  
  alias numa_sources
      : numa/solaris/pin_thread.cpp
        numa/solaris/topology.cpp
      : <target-os>solaris
      ;
  
  alias numa_sources
      : numa/windows/pin_thread.cpp
        numa/windows/topology.cpp
      : <target-os>windows
      ;
  
  alias numa_sources
      : numa/pin_thread.cpp
        numa/topology.cpp
      ;
  
  explicit numa_sources ;
  
  lib boost_fiber_numa
      : numa_sources
        numa/algo/work_stealing.cpp
      :
      <conditional>@numa
      <library>boost_fiber
      [ requires cxx11_auto_declarations
                 cxx11_constexpr
                 cxx11_defaulted_functions
                 cxx11_final
                 cxx11_hdr_mutex
                 cxx11_hdr_tuple
                 cxx11_lambdas
                 cxx11_noexcept
                 cxx11_nullptr
                 cxx11_rvalue_references
                 cxx11_template_aliases
                 cxx11_thread_local
                 cxx11_variadic_templates ]
      ;
  
  
  boost-install boost_fiber boost_fiber_numa ;