1#~ Copyright Rene Rivera 2008
2#~ Distributed under the Boost Software License, Version 1.0.
3#~ (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
4
5import testing ;
6import cast ;
7
8project preprocessor_tests : requirements <warnings>on
9                                          <toolset>gcc-4.3.0:<warnings>all
10                                          <toolset>gcc-4.3.0:<cxxflags>-Wno-variadic-macros
11                                          <toolset>gcc-4.4.0:<warnings>all
12                                          <toolset>gcc-4.4.0:<cxxflags>-Wno-variadic-macros
13                                          <toolset>gcc-4.5.0:<warnings>all
14                                          <toolset>gcc-4.5.0:<cxxflags>-Wno-variadic-macros
15                                          <toolset>gcc-4.5.0:<linkflags>"-Wl,--enable-auto-import"
16                                          <toolset>gcc-4.5.2:<warnings>all
17                                          <toolset>gcc-4.5.2:<cxxflags>-Wno-variadic-macros
18                                          <toolset>msvc:<warnings>all
19                                          ;
20
21alias preprocessor : :
22        <toolset>gcc
23        <toolset-gcc:version>3.4
24    ;
25
26alias preprocessor : :
27        <toolset>gcc
28        <toolset-gcc:version>4.1
29    ;
30
31alias preprocessor : :
32        <toolset>gcc
33        <toolset-gcc:version>4.2
34    ;
35
36alias preprocessor
37   :
38        [ compile arithmetic.cpp ]
39        [ compile array.cpp ]
40        [ compile comparison.cpp ]
41        [ compile control.cpp ]
42        [ compile debug.cpp ]
43        [ compile facilities.cpp ]
44        [ compile iteration.cpp ]
45        [ compile list.cpp ]
46        [ compile logical.cpp ]
47        [ compile punctuation.cpp ]
48        [ compile repetition.cpp ]
49        [ compile selection.cpp ]
50        [ compile seq.cpp ]
51        [ compile slot.cpp ]
52        [ compile stringize.cpp ]
53        [ compile tuple.cpp ]
54        [ compile variadic.cpp ]
55  ;
56
57alias preprocessor_nvm
58   :
59        [ compile arithmetic.cpp : <define>BOOST_PP_VARIADICS=0 : arithmetic_nvm ]
60        [ compile array.cpp : <define>BOOST_PP_VARIADICS=0 : array_nvm ]
61        [ compile comparison.cpp : <define>BOOST_PP_VARIADICS=0 : comparison_nvm ]
62        [ compile control.cpp : <define>BOOST_PP_VARIADICS=0 : control_nvm ]
63        [ compile debug.cpp : <define>BOOST_PP_VARIADICS=0 : debug_nvm ]
64        [ compile facilities.cpp : <define>BOOST_PP_VARIADICS=0 : facilities_nvm ]
65        [ compile iteration.cpp : <define>BOOST_PP_VARIADICS=0 : iteration_nvm ]
66        [ compile list.cpp : <define>BOOST_PP_VARIADICS=0 : list_nvm ]
67        [ compile logical.cpp : <define>BOOST_PP_VARIADICS=0 : logical_nvm ]
68        [ compile repetition.cpp : <define>BOOST_PP_VARIADICS=0 : repetition_nvm ]
69        [ compile selection.cpp : <define>BOOST_PP_VARIADICS=0 : selection_nvm ]
70        [ compile seq.cpp : <define>BOOST_PP_VARIADICS=0 : seq_nvm ]
71        [ compile slot.cpp : <define>BOOST_PP_VARIADICS=0 : slot_nvm ]
72        [ compile stringize.cpp : <define>BOOST_PP_VARIADICS=0 : stringize_nvm ]
73        [ compile tuple.cpp : <define>BOOST_PP_VARIADICS=0 : tuple_nvm ]
74  ;
75
76alias preprocessor_c
77   :
78        [ compile arithmetic.c
79          :
80          : arithmetic_c
81        ]
82        [ compile array.c
83          :
84          : array_c
85        ]
86        [ compile comparison.c
87          :
88          : comparison_c
89        ]
90        [ compile control.c
91          :
92          : control_c
93        ]
94        [ compile debug.c
95          :
96          : debug_c
97        ]
98        [ compile facilities.c
99          :
100          : facilities_c
101        ]
102        [ compile list.c
103          :
104          : list_c
105        ]
106        [ compile logical.c
107          :
108          : logical_c
109        ]
110        [ compile punctuation.c
111          :
112          : punctuation_c
113        ]
114        [ compile selection.c
115          :
116          : selection_c
117        ]
118        [ compile seq.c
119          :
120          : seq_c
121        ]
122        [ compile slot.c
123          :
124          : slot_c
125        ]
126        [ compile stringize.c
127          :
128          : stringize_c
129        ]
130        [ compile tuple.c
131          :
132          : tuple_c
133        ]
134        [ compile variadic.c
135          :
136          : variadic_c
137        ]
138  ;
139
140alias preprocessor_c_nvm
141   :
142        [ compile arithmetic.c
143          : <define>BOOST_PP_VARIADICS=0
144          : arithmetic_c_nvm
145        ]
146        [ compile array.c
147          : <define>BOOST_PP_VARIADICS=0
148          : array_c_nvm
149        ]
150        [ compile comparison.c
151          : <define>BOOST_PP_VARIADICS=0
152          : comparison_c_nvm
153        ]
154        [ compile control.c
155          : <define>BOOST_PP_VARIADICS=0
156          : control_c_nvm
157        ]
158        [ compile debug.c
159          : <define>BOOST_PP_VARIADICS=0
160          : debug_c_nvm
161        ]
162        [ compile facilities.c
163          : <define>BOOST_PP_VARIADICS=0
164          : facilities_c_nvm
165        ]
166        [ compile list.c
167          : <define>BOOST_PP_VARIADICS=0
168          : list_c_nvm
169        ]
170        [ compile logical.c
171          : <define>BOOST_PP_VARIADICS=0
172          : logical_c_nvm
173        ]
174        [ compile selection.c
175          : <define>BOOST_PP_VARIADICS=0
176          : selection_c_nvm
177        ]
178        [ compile seq.c
179          : <define>BOOST_PP_VARIADICS=0
180          : seq_c_nvm
181        ]
182        [ compile slot.c
183          : <define>BOOST_PP_VARIADICS=0
184          : slot_c_nvm
185        ]
186        [ compile stringize.c
187          : <define>BOOST_PP_VARIADICS=0
188          : stringize_c_nvm
189        ]
190        [ compile tuple.c
191          : <define>BOOST_PP_VARIADICS=0
192          : tuple_c_nvm
193        ]
194  ;
195
196alias preprocessor_isempty : :
197        <toolset>gcc
198        <toolset-gcc:version>3.4
199    ;
200
201alias preprocessor_isempty : :
202        <toolset>gcc
203        <toolset-gcc:version>4.1
204    ;
205
206alias preprocessor_isempty : :
207        <toolset>gcc
208        <toolset-gcc:version>4.2
209    ;
210
211alias preprocessor_isempty
212  :
213       [ compile isempty.cpp ]
214       [ compile checkempty.cpp ]
215       [ compile-fail isempty_variadic_standard_failure.cpp : <define>BOOST_PP_VARIADICS=1 ]
216       [ compile-fail isempty_variadic_standard_failure2.cpp : <define>BOOST_PP_VARIADICS=1 ]
217       [ compile vaopt.cpp ]
218 ;
219
220alias preprocessor_isempty_nvm
221   :
222       [ compile isempty.cpp : <define>BOOST_PP_VARIADICS=0 : isempty_nvm ]
223  ;
224
225alias preprocessor_isempty_c
226  :
227       [ compile isempty.c
228         :
229         : isempty_c
230       ]
231       [ compile-fail isempty_variadic_standard_failure.c
232         : <define>BOOST_PP_VARIADICS=1
233         : isempty_variadic_standard_failure_c
234       ]
235       [ compile-fail isempty_variadic_standard_failure2.c
236         : <define>BOOST_PP_VARIADICS=1
237         : isempty_variadic_standard_failure2_c
238       ]
239 ;
240
241alias preprocessor_isempty_c_nvm
242   :
243        [ compile isempty.c
244          : <define>BOOST_PP_VARIADICS=0
245          : isempty_c_nvm
246        ]
247  ;
248
249alias preprocessor_config
250   :
251        [ run config_info.cpp ]
252  ;
253
254alias test_clang_cuda
255   :
256        [ compile [ cast _ cpp : clang_cuda.cu ]
257          : <cxxflags>-nocudalib
258            <cxxflags>-nocudainc
259            <cxxflags>"-x cuda"
260          : clang_cuda_cu
261        ]
262  ;
263
264explicit test_clang_cuda ;
265