Jamfile.v2 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. # Boost.Fiber Library Build Jamfile
  2. # Copyright Oliver Kowalke 2013.
  3. # Distributed under the Boost Software License, Version 1.0.
  4. # (See accompanying file LICENSE_1_0.txt or copy at
  5. # http://www.boost.org/LICENSE_1_0.txt)
  6. import feature ;
  7. import modules ;
  8. import testing ;
  9. import toolset ;
  10. import ../../config/checks/config : requires ;
  11. feature.feature numa : on : optional propagated composite ;
  12. feature.compose <numa>on : <define>BOOST_USE_NUMA ;
  13. project boost/fiber
  14. : requirements
  15. <library>/boost/context//boost_context
  16. <library>/boost/filesystem//boost_filesystem
  17. <target-os>solaris:<linkflags>"-llgrp"
  18. <target-os>windows:<define>_WIN32_WINNT=0x0601
  19. <toolset>gcc,<segmented-stacks>on:<cxxflags>-fsplit-stack
  20. <toolset>gcc,<segmented-stacks>on:<cxxflags>-DBOOST_USE_SEGMENTED_STACKS
  21. <toolset>clang,<segmented-stacks>on:<cxxflags>-fsplit-stack
  22. <toolset>clang,<segmented-stacks>on:<cxxflags>-DBOOST_USE_SEGMENTED_STACKS
  23. <link>shared:<define>BOOST_FIBERS_DYN_LINK=1
  24. <define>BOOST_FIBERS_SOURCE
  25. <threading>multi
  26. : usage-requirements
  27. <link>shared:<define>BOOST_FIBERS_DYN_LINK=1
  28. <optimization>speed:<define>BOOST_DISABLE_ASSERTS
  29. <variant>release:<define>BOOST_DISABLE_ASSERTS
  30. : source-location ../src
  31. ;
  32. rule numa ( properties * )
  33. {
  34. local result ;
  35. if ( <numa>on in $(properties) )
  36. {
  37. result = <numa>on ;
  38. }
  39. else
  40. {
  41. result = <build>no ;
  42. }
  43. return $(result) ;
  44. }
  45. lib boost_fiber
  46. : algo/algorithm.cpp
  47. algo/round_robin.cpp
  48. algo/shared_work.cpp
  49. algo/work_stealing.cpp
  50. barrier.cpp
  51. condition_variable.cpp
  52. context.cpp
  53. fiber.cpp
  54. future.cpp
  55. mutex.cpp
  56. properties.cpp
  57. recursive_mutex.cpp
  58. recursive_timed_mutex.cpp
  59. timed_mutex.cpp
  60. scheduler.cpp
  61. : <link>shared:<library>../../context/build//boost_context
  62. [ requires cxx11_auto_declarations
  63. cxx11_constexpr
  64. cxx11_defaulted_functions
  65. cxx11_final
  66. cxx11_hdr_mutex
  67. cxx11_hdr_tuple
  68. cxx11_lambdas
  69. cxx11_noexcept
  70. cxx11_nullptr
  71. cxx11_rvalue_references
  72. cxx11_template_aliases
  73. cxx11_thread_local
  74. cxx11_variadic_templates ]
  75. ;
  76. alias numa_sources
  77. : numa/aix/pin_thread.cpp
  78. numa/aix/topology.cpp
  79. : <target-os>aix
  80. ;
  81. alias numa_sources
  82. : numa/freebsd/pin_thread.cpp
  83. numa/freebsd/topology.cpp
  84. : <target-os>freebsd
  85. ;
  86. alias numa_sources
  87. : numa/hpux/pin_thread.cpp
  88. numa/hpux/topology.cpp
  89. : <target-os>hpux
  90. ;
  91. alias numa_sources
  92. : numa/linux/pin_thread.cpp
  93. numa/linux/topology.cpp
  94. : <target-os>linux
  95. ;
  96. alias numa_sources
  97. : numa/solaris/pin_thread.cpp
  98. numa/solaris/topology.cpp
  99. : <target-os>solaris
  100. ;
  101. alias numa_sources
  102. : numa/windows/pin_thread.cpp
  103. numa/windows/topology.cpp
  104. : <target-os>windows
  105. ;
  106. alias numa_sources
  107. : numa/pin_thread.cpp
  108. numa/topology.cpp
  109. ;
  110. explicit numa_sources ;
  111. lib boost_fiber_numa
  112. : numa_sources
  113. numa/algo/work_stealing.cpp
  114. :
  115. <conditional>@numa
  116. [ requires cxx11_auto_declarations
  117. cxx11_constexpr
  118. cxx11_defaulted_functions
  119. cxx11_final
  120. cxx11_hdr_mutex
  121. cxx11_hdr_tuple
  122. cxx11_lambdas
  123. cxx11_noexcept
  124. cxx11_nullptr
  125. cxx11_rvalue_references
  126. cxx11_template_aliases
  127. cxx11_thread_local
  128. cxx11_variadic_templates ]
  129. ;
  130. boost-install boost_fiber boost_fiber_numa ;