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 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
|
# Copyright 2016-2017 Klemens David Morgenstern
# Copyright 2018 Mateusz Loskot <mateusz@loskot.net>
# Copyright 2018-2019 Hans Dembinski
#
# Use, modification and distribution is subject to 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 python ;
import os ;
import regex ;
import testing ;
import ../../config/checks/config : requires ;
if ! [ python.configured ]
{
using python ;
}
path-constant THIS_PATH : . ;
project
: requirements
[ requires
cxx14_constexpr cxx14_decltype_auto cxx14_generic_lambdas cxx14_return_type_deduction cxx11_user_defined_literals
# list could go on...
]
;
# Check consistency of build systems
testing.make-test run-pyd : check_build_system.py :
<dependency>Jamfile <dependency>CMakeLists.txt ;
# Verify One Definition Rule by linking two object files which include everything
testing.make-test run-pyd : check_odr_test.py : <dependency>odr_test.cpp ;
alias odr :
[ link odr_main_test.cpp odr_test.cpp ]
: <warnings>off
;
alias cxx14 :
[ run accumulators_count_test.cpp ]
[ run accumulators_mean_test.cpp ]
[ run accumulators_sum_test.cpp : : :
# make sure sum accumulator works even with -ffast-math and optimizations
<toolset>gcc:<cxxflags>"-O3 -ffast-math"
<toolset>clang:<cxxflags>"-O3 -ffast-math" ]
[ run accumulators_thread_safe_test.cpp ]
[ run accumulators_weighted_mean_test.cpp ]
[ run accumulators_weighted_sum_test.cpp ]
[ run algorithm_project_test.cpp ]
[ run algorithm_reduce_test.cpp ]
[ run algorithm_sum_test.cpp ]
[ run algorithm_empty_test.cpp ]
[ run axis_boolean_test.cpp ]
[ run axis_category_test.cpp ]
[ run axis_integer_test.cpp ]
[ run axis_option_test.cpp ]
[ run axis_regular_test.cpp ]
[ run axis_traits_test.cpp ]
[ run axis_variable_test.cpp ]
[ run axis_variant_test.cpp ]
[ run detail_accumulator_traits_test.cpp ]
[ run detail_argument_traits_test.cpp ]
[ run detail_args_type_test.cpp ]
[ run detail_axes_test.cpp ]
[ run detail_convert_integer_test.cpp ]
[ run detail_detect_test.cpp ]
[ run detail_limits_test.cpp ]
[ run detail_make_default_test.cpp ]
[ run detail_misc_test.cpp ]
[ run detail_iterator_adaptor_test.cpp ]
[ run detail_large_int_test.cpp ]
[ run detail_operators_test.cpp ]
[ run detail_relaxed_equal_test.cpp ]
[ run detail_replace_type_test.cpp ]
[ run detail_safe_comparison_test.cpp ]
[ run detail_static_if_test.cpp ]
[ run detail_tuple_slice_test.cpp ]
[ run histogram_custom_axis_test.cpp ]
[ run histogram_dynamic_test.cpp ]
[ run histogram_fill_test.cpp ]
[ run histogram_growing_test.cpp ]
[ run histogram_mixed_test.cpp ]
[ run histogram_operators_test.cpp ]
[ run histogram_ostream_test.cpp ]
[ run histogram_test.cpp ]
[ run indexed_test.cpp ]
[ run storage_adaptor_test.cpp ]
[ run unlimited_storage_test.cpp ]
[ run utility_test.cpp ]
;
alias cxx17 :
[ run deduction_guides_test.cpp ] :
[ requires cpp_deduction_guides ]
;
# check that useful error messages are produced when library is used incorrectly
alias failure :
[ compile-fail axis_category_fail0.cpp ]
[ compile-fail axis_category_fail1.cpp ]
[ compile-fail axis_category_fail2.cpp ]
[ compile-fail axis_integer_fail0.cpp ]
[ compile-fail axis_integer_fail1.cpp ]
[ compile-fail axis_integer_fail2.cpp ]
[ compile-fail axis_integer_fail3.cpp ]
[ compile-fail axis_integer_fail4.cpp ]
[ compile-fail axis_regular_fail0.cpp ]
[ compile-fail axis_regular_fail1.cpp ]
[ compile-fail axis_variable_fail0.cpp ]
[ compile-fail axis_variable_fail1.cpp ]
[ compile-fail make_histogram_fail0.cpp ]
[ compile-fail make_histogram_fail1.cpp ]
[ compile-fail histogram_fail0.cpp ]
[ compile-fail histogram_fail1.cpp ]
[ compile-fail histogram_fail2.cpp ]
[ compile-fail histogram_fail3.cpp ]
[ compile-fail histogram_fail4.cpp ]
;
alias threading :
[ run histogram_threaded_test.cpp ]
[ run storage_adaptor_threaded_test.cpp ]
:
<threading>multi
;
# warnings are off for these other boost libraries, which tend to be not warning-free
alias accumulators : [ run boost_accumulators_support_test.cpp ] : <warnings>off ;
alias range : [ run boost_range_support_test.cpp ] : <warnings>off ;
alias units : [ run boost_units_support_test.cpp ] : <warnings>off ;
alias serialization :
[ run accumulators_serialization_test.cpp libserial : $(THIS_PATH) ]
[ run detail_array_wrapper_serialization_test.cpp libserial ]
[ run axis_variant_serialization_test.cpp libserial : $(THIS_PATH) ]
[ run histogram_serialization_test.cpp libserial : $(THIS_PATH) ]
[ run storage_adaptor_serialization_test.cpp libserial : $(THIS_PATH) ]
[ run unlimited_storage_serialization_test.cpp libserial : $(THIS_PATH) ]
: <warnings>off
;
alias libserial :
/boost/serialization//boost_serialization
:
<link>static <warnings>off <rtti>on
;
# for builds without optional boost dependencies
alias minimal : cxx14 cxx17 failure threading ;
# all tests
alias all : minimal odr accumulators range units serialization ;
# all except "failure", because it is distracting during development
alias develop : cxx14 cxx17 threading odr accumulators range units serialization ;
explicit minimal ;
explicit all ;
explicit odr ;
explicit cxx14 ;
explicit cxx17 ;
explicit failure ;
explicit threading ;
explicit accumulators ;
explicit range ;
explicit units ;
explicit serialization ;
explicit libserial ;
|