Jamroot.jam.in 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. constant BOOST_VERSION : @BOOST_VERSION@ ;
  2. constant BOOST_VERSION_ABI_TAG : @BOOST_VERSION_ABI_TAG@ ;
  3. constant BOOST_JAMROOT_MODULE : $(__name__) ;
  4. import boostcpp ;
  5. import feature ;
  6. boostcpp.set-version $(BOOST_VERSION) ;
  7. project boost : requirements
  8. <include>include&&"@CURRENT_INSTALLED_DIR@/include"
  9. <define>BOOST_ALL_NO_LIB=1
  10. <tag>@$(__name__).tag
  11. @B2_REQUIREMENTS@
  12. ;
  13. rule boost-install ( libraries * )
  14. {
  15. stagedir = [ option.get stagedir ] ;
  16. install stage
  17. : $(libraries)
  18. : <location>$(stagedir)/lib ;
  19. }
  20. rule tag ( name : type ? : property-set )
  21. {
  22. return [ boostcpp.tag $(name) : $(type) : $(property-set) ] ;
  23. }
  24. rule python-tag ( name : type ? : property-set )
  25. {
  26. return [ boostcpp.python-tag $(name) : $(type) : $(property-set) ] ;
  27. }
  28. if "@PORT@" != "boost-system"
  29. {
  30. use-project /boost/system : . ;
  31. lib boost_system : : <file>"@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_system@BOOST_LIB_RELEASE_SUFFIX@" <variant>release ;
  32. lib boost_system : : <file>"@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_system@BOOST_LIB_DEBUG_SUFFIX@" <variant>debug ;
  33. explicit boost_system ;
  34. use-project /boost : . ;
  35. alias system : boost_system ;
  36. }
  37. if "@PORT@" != "boost-chrono"
  38. {
  39. use-project /boost/chrono : . ;
  40. lib boost_chrono : : <file>"@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_chrono@BOOST_LIB_RELEASE_SUFFIX@" <variant>release ;
  41. lib boost_chrono : : <file>"@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_chrono@BOOST_LIB_DEBUG_SUFFIX@" <variant>debug ;
  42. explicit boost_chrono ;
  43. }
  44. if "@PORT@" != "boost-regex"
  45. {
  46. use-project /boost/regex : . ;
  47. lib boost_regex : : <file>"@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_regex@BOOST_LIB_RELEASE_SUFFIX@" <variant>release ;
  48. lib boost_regex : : <file>"@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_regex@BOOST_LIB_DEBUG_SUFFIX@" <variant>debug ;
  49. explicit boost_regex ;
  50. }
  51. if "@PORT@" != "boost-date-time"
  52. {
  53. use-project /boost/date_time : . ;
  54. lib boost_date_time : : <file>"@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_date_time@BOOST_LIB_RELEASE_SUFFIX@" <variant>release -<library>/boost/date_time//boost_date_time ;
  55. lib boost_date_time : : <file>"@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_date_time@BOOST_LIB_DEBUG_SUFFIX@" <variant>debug -<library>/boost/date_time//boost_date_time ;
  56. explicit boost_date_time ;
  57. }
  58. if "@PORT@" != "boost-thread"
  59. {
  60. use-project /boost/thread : . ;
  61. lib boost_thread : : <file>"@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_thread@BOOST_LIB_RELEASE_SUFFIX@" <variant>release : : <library>/boost/date_time//boost_date_time ;
  62. lib boost_thread : : <file>"@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_thread@BOOST_LIB_DEBUG_SUFFIX@" <variant>debug : : <library>/boost/date_time//boost_date_time ;
  63. explicit boost_thread ;
  64. }
  65. if "@PORT@" != "boost-timer"
  66. {
  67. use-project /boost/timer : . ;
  68. lib boost_timer : : <file>"@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_timer@BOOST_LIB_RELEASE_SUFFIX@" <variant>release ;
  69. lib boost_timer : : <file>"@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_timer@BOOST_LIB_DEBUG_SUFFIX@" <variant>debug ;
  70. explicit boost_timer ;
  71. }
  72. if "@PORT@" != "boost-filesystem"
  73. {
  74. use-project /boost/filesystem : . ;
  75. lib boost_filesystem : : <file>"@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_filesystem@BOOST_LIB_RELEASE_SUFFIX@" <variant>release : : <library>/boost/system//boost_system ;
  76. lib boost_filesystem : : <file>"@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_filesystem@BOOST_LIB_DEBUG_SUFFIX@" <variant>debug : : <library>/boost/system//boost_system ;
  77. explicit boost_filesystem ;
  78. }
  79. if "@PORT@" != "boost-atomic"
  80. {
  81. use-project /boost/atomic : . ;
  82. lib boost_atomic : : <file>"@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_atomic@BOOST_LIB_RELEASE_SUFFIX@" <variant>release ;
  83. lib boost_atomic : : <file>"@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_atomic@BOOST_LIB_DEBUG_SUFFIX@" <variant>debug ;
  84. explicit boost_atomic ;
  85. }
  86. if "@PORT@" != "boost-context"
  87. {
  88. feature.feature segmented-stacks : on : optional propagated composite ;
  89. feature.compose <segmented-stacks>on : <define>BOOST_USE_SEGMENTED_STACKS ;
  90. use-project /boost/context : . ;
  91. lib boost_context : : <file>"@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_context@BOOST_LIB_RELEASE_SUFFIX@" <variant>release ;
  92. lib boost_context : : <file>"@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_context@BOOST_LIB_DEBUG_SUFFIX@" <variant>debug ;
  93. explicit boost_context ;
  94. }
  95. if "@PORT@" != "boost-test"
  96. {
  97. use-project /boost/test : . ;
  98. lib boost_unit_test_framework : : <file>"@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_unit_test_framework@BOOST_LIB_RELEASE_SUFFIX@" <variant>release ;
  99. lib boost_unit_test_framework : : <file>"@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_unit_test_framework@BOOST_LIB_DEBUG_SUFFIX@" <variant>debug ;
  100. explicit boost_unit_test_framework ;
  101. }
  102. if "@PORT@" != "boost-serialization"
  103. {
  104. use-project /boost/serialization : . ;
  105. lib boost_serialization : : <file>"@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_serialization@BOOST_LIB_RELEASE_SUFFIX@" <variant>release ;
  106. lib boost_serialization : : <file>"@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_serialization@BOOST_LIB_DEBUG_SUFFIX@" <variant>debug ;
  107. explicit boost_serialization ;
  108. }
  109. if "@PORT@" != "boost-mpi"
  110. {
  111. use-project /boost/mpi : . ;
  112. lib boost_mpi : : <file>"@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_mpi@BOOST_LIB_RELEASE_SUFFIX@" <variant>release : : <library>/boost/serialization//boost_serialization ;
  113. lib boost_mpi : : <file>"@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_mpi@BOOST_LIB_DEBUG_SUFFIX@" <variant>debug : : <library>/boost/serialization//boost_serialization ;
  114. explicit boost_mpi ;
  115. }
  116. if "@PORT@" != "boost-container"
  117. {
  118. use-project /boost/container : . ;
  119. lib boost_container : : <file>"@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_container@BOOST_LIB_RELEASE_SUFFIX@" <variant>release ;
  120. lib boost_container : : <file>"@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_container@BOOST_LIB_DEBUG_SUFFIX@" <variant>debug ;
  121. explicit boost_container ;
  122. }
  123. if "@PORT@" != "boost-python"
  124. {
  125. use-project /boost/python : . ;
  126. lib boost_python : : <file>"@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_python@PYTHON_VERSION_TAG@@BOOST_LIB_RELEASE_SUFFIX@" <variant>release ;
  127. lib boost_python : : <file>"@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_python@PYTHON_VERSION_TAG@@BOOST_LIB_DEBUG_SUFFIX@" <variant>debug ;
  128. explicit boost_python ;
  129. }
  130. rule requires ( foo * )
  131. {
  132. }
  133. rule boost-lib ( name : sources * : requirements * : default-build * : usage-requirements * )
  134. {
  135. name = boost_$(name) ;
  136. lib $(name) : $(sources) : $(requirements) : $(default-build) : $(usage-requirements) ;
  137. boost-install $(name) ;
  138. }
  139. use-project /boost/@PORT@ : build ;
  140. build-project build ;