Jamfile 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. # Copyright 2016-2017 Klemens David Morgenstern
  2. # Copyright 2018 Mateusz Loskot <mateusz@loskot.net>
  3. # Copyright 2018-2019 Hans Dembinski
  4. #
  5. # Use, modification and distribution is subject to the Boost Software License,
  6. # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
  7. # http://www.boost.org/LICENSE_1_0.txt)
  8. import python ;
  9. import os ;
  10. import regex ;
  11. import testing ;
  12. import ../../config/checks/config : requires ;
  13. if ! [ python.configured ]
  14. {
  15. using python ;
  16. }
  17. path-constant THIS_PATH : . ;
  18. project
  19. : requirements
  20. [ requires
  21. cxx14_constexpr cxx14_decltype_auto cxx14_generic_lambdas cxx14_return_type_deduction cxx11_user_defined_literals
  22. # list could go on...
  23. ]
  24. ;
  25. # Check consistency of build systems
  26. testing.make-test run-pyd : check_build_system.py :
  27. <dependency>Jamfile <dependency>CMakeLists.txt ;
  28. # Verify One Definition Rule by linking two object files which include everything
  29. testing.make-test run-pyd : check_odr_test.py : <dependency>odr_test.cpp ;
  30. alias odr :
  31. [ link odr_main_test.cpp odr_test.cpp ]
  32. ;
  33. alias cxx14 :
  34. [ run accumulators_test.cpp ]
  35. [ run algorithm_project_test.cpp ]
  36. [ run algorithm_reduce_test.cpp ]
  37. [ run algorithm_sum_test.cpp ]
  38. [ run algorithm_empty_test.cpp ]
  39. [ run axis_category_test.cpp ]
  40. [ run axis_integer_test.cpp ]
  41. [ run axis_option_test.cpp ]
  42. [ run axis_regular_test.cpp ]
  43. [ run axis_size.cpp ]
  44. [ run axis_traits_test.cpp ]
  45. [ run axis_variable_test.cpp ]
  46. [ run axis_variant_test.cpp ]
  47. [ run detail_accumulator_traits_test.cpp ]
  48. [ run detail_argument_traits_test.cpp ]
  49. [ run detail_args_type_test.cpp ]
  50. [ run detail_axes_test.cpp ]
  51. [ run detail_convert_integer_test.cpp ]
  52. [ run detail_detect_test.cpp ]
  53. [ run detail_limits_test.cpp ]
  54. [ run detail_make_default_test.cpp ]
  55. [ run detail_misc_test.cpp ]
  56. [ run detail_iterator_adaptor_test.cpp ]
  57. [ run detail_large_int_test.cpp ]
  58. [ run detail_operators_test.cpp ]
  59. [ run detail_relaxed_equal_test.cpp ]
  60. [ run detail_replace_type_test.cpp ]
  61. [ run detail_safe_comparison_test.cpp ]
  62. [ run detail_static_if_test.cpp ]
  63. [ run detail_tuple_slice_test.cpp ]
  64. [ run histogram_custom_axis_test.cpp ]
  65. [ run histogram_dynamic_test.cpp ]
  66. [ run histogram_fill_test.cpp ]
  67. [ run histogram_growing_test.cpp ]
  68. [ run histogram_mixed_test.cpp ]
  69. [ run histogram_operators_test.cpp ]
  70. [ run histogram_ostream_test.cpp ]
  71. [ run histogram_test.cpp ]
  72. [ run indexed_test.cpp ]
  73. [ run storage_adaptor_test.cpp ]
  74. [ run unlimited_storage_test.cpp ]
  75. [ run utility_test.cpp ]
  76. ;
  77. alias cxx17 :
  78. [ run deduction_guides_test.cpp ] :
  79. [ requires cpp_deduction_guides ]
  80. ;
  81. # check that useful error messages are produced when library is used incorrectly
  82. alias failure :
  83. [ compile-fail axis_category_fail0.cpp ]
  84. [ compile-fail axis_category_fail1.cpp ]
  85. [ compile-fail axis_category_fail2.cpp ]
  86. [ compile-fail axis_integer_fail0.cpp ]
  87. [ compile-fail axis_integer_fail1.cpp ]
  88. [ compile-fail axis_integer_fail2.cpp ]
  89. [ compile-fail axis_integer_fail3.cpp ]
  90. [ compile-fail axis_integer_fail4.cpp ]
  91. [ compile-fail axis_regular_fail0.cpp ]
  92. [ compile-fail axis_regular_fail1.cpp ]
  93. [ compile-fail axis_variable_fail0.cpp ]
  94. [ compile-fail axis_variable_fail1.cpp ]
  95. [ compile-fail make_histogram_fail0.cpp ]
  96. [ compile-fail make_histogram_fail1.cpp ]
  97. [ compile-fail histogram_fail0.cpp ]
  98. [ compile-fail histogram_fail1.cpp ]
  99. [ compile-fail histogram_fail2.cpp ]
  100. [ compile-fail histogram_fail3.cpp ]
  101. [ compile-fail histogram_fail4.cpp ]
  102. ;
  103. alias threading :
  104. [ run histogram_threaded_test.cpp ]
  105. [ run storage_adaptor_threaded_test.cpp ]
  106. :
  107. <threading>multi
  108. ;
  109. # warnings are off for these other boost libraries, which tend to be not warning-free
  110. alias accumulators : [ run boost_accumulators_support_test.cpp ] : <warnings>off ;
  111. alias range : [ run boost_range_support_test.cpp ] : <warnings>off ;
  112. alias units : [ run boost_units_support_test.cpp ] : <warnings>off ;
  113. alias serialization :
  114. [ run accumulators_serialization_test.cpp libserial : $(THIS_PATH) ]
  115. [ run detail_array_wrapper_serialization_test.cpp libserial ]
  116. [ run axis_variant_serialization_test.cpp libserial : $(THIS_PATH) ]
  117. [ run histogram_serialization_test.cpp libserial : $(THIS_PATH) ]
  118. [ run storage_adaptor_serialization_test.cpp libserial : $(THIS_PATH) ]
  119. [ run unlimited_storage_serialization_test.cpp libserial : $(THIS_PATH) ]
  120. ;
  121. alias libserial :
  122. /boost/serialization//boost_serialization
  123. :
  124. <link>static <warnings>off <rtti>on
  125. ;
  126. # for builds without optional boost dependencies
  127. alias minimal : odr cxx14 cxx17 failure threading ;
  128. # all tests
  129. alias all : minimal accumulators range units serialization ;
  130. # all except "failure", because it is distracting during development
  131. alias develop : odr cxx14 cxx17 threading accumulators range units serialization ;
  132. explicit minimal ;
  133. explicit all ;
  134. explicit odr ;
  135. explicit cxx14 ;
  136. explicit cxx17 ;
  137. explicit failure ;
  138. explicit threading ;
  139. explicit accumulators ;
  140. explicit range ;
  141. explicit units ;
  142. explicit serialization ;
  143. explicit libserial ;