blob: cdb695a510e95867a643dda73867368cf63181e6 (
plain)
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
|
# 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 ]
;
alias cxx14 :
[ run accumulators_test.cpp ]
[ run algorithm_project_test.cpp ]
[ run algorithm_reduce_test.cpp ]
[ run algorithm_sum_test.cpp ]
[ run algorithm_empty_test.cpp ]
[ run axis_category_test.cpp ]
[ run axis_integer_test.cpp ]
[ run axis_option_test.cpp ]
[ run axis_regular_test.cpp ]
[ run axis_size.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) ]
;
alias libserial :
/boost/serialization//boost_serialization
:
<link>static <warnings>off <rtti>on
;
# for builds without optional boost dependencies
alias minimal : odr cxx14 cxx17 failure threading ;
# all tests
alias all : minimal accumulators range units serialization ;
# all except "failure", because it is distracting during development
alias develop : odr cxx14 cxx17 threading 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 ;
|