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_number_512 58 : 59 [ compile arithmetic.cpp : <define>BOOST_PP_LIMIT_MAG=512 : arithmetic_num_512 ] 60 [ compile array.cpp : <define>BOOST_PP_LIMIT_MAG=512 : array_num_512 ] 61 [ compile comparison.cpp : <define>BOOST_PP_LIMIT_MAG=512 : comparison_num_512 ] 62 [ compile control.cpp : <define>BOOST_PP_LIMIT_MAG=512 : control_num_512 ] 63 [ compile debug.cpp : <define>BOOST_PP_LIMIT_MAG=512 : debug_num_512 ] 64 [ compile facilities.cpp : <define>BOOST_PP_LIMIT_MAG=512 : facilities_num_512 ] 65 [ compile iteration.cpp : <define>BOOST_PP_LIMIT_MAG=512 <define>BOOST_PP_LIMIT_ITERATION=512 : iteration_num_512 ] 66 [ compile list.cpp : <define>BOOST_PP_LIMIT_MAG=512 <define>BOOST_PP_LIMIT_FOR=512 : list_num_512 ] 67 [ compile logical.cpp : <define>BOOST_PP_LIMIT_MAG=512 : logical_num_512 ] 68 [ compile repetition.cpp : <define>BOOST_PP_LIMIT_MAG=512 : repetition_num_512 ] 69 [ compile selection.cpp : <define>BOOST_PP_LIMIT_MAG=512 : selection_num_512 ] 70 [ compile seq.cpp : <define>BOOST_PP_LIMIT_MAG=512 <define>BOOST_PP_LIMIT_SEQ=512 : seq_num_512 ] 71 [ compile slot.cpp : <define>BOOST_PP_LIMIT_MAG=512 : slot_num_512 ] 72 [ compile stringize.cpp : <define>BOOST_PP_LIMIT_MAG=512 : stringize_num_512 ] 73 [ compile tuple.cpp : <define>BOOST_PP_LIMIT_MAG=512 : tuple_num_512 ] 74 [ compile variadic.cpp : <define>BOOST_PP_LIMIT_MAG=512 : variadic_num_512 ] 75 ; 76 77alias preprocessor_number_1024 78 : 79 [ compile arithmetic.cpp : <define>BOOST_PP_LIMIT_MAG=1024 : arithmetic_num_1024 ] 80 [ compile array.cpp : <define>BOOST_PP_LIMIT_MAG=1024 : array_num_1024 ] 81 [ compile comparison.cpp : <define>BOOST_PP_LIMIT_MAG=1024 : comparison_num_1024 ] 82 [ compile control.cpp : <define>BOOST_PP_LIMIT_MAG=1024 : control_num_1024 ] 83 [ compile debug.cpp : <define>BOOST_PP_LIMIT_MAG=1024 : debug_num_1024 ] 84 [ compile facilities.cpp : <define>BOOST_PP_LIMIT_MAG=1024 : facilities_num_1024 ] 85 [ compile iteration.cpp : <define>BOOST_PP_LIMIT_MAG=1024 <define>BOOST_PP_LIMIT_ITERATION=1024 : iteration_num_1024 ] 86 [ compile list.cpp : <define>BOOST_PP_LIMIT_MAG=1024 <define>BOOST_PP_LIMIT_FOR=1024 : list_num_1024 ] 87 [ compile logical.cpp : <define>BOOST_PP_LIMIT_MAG=1024 : logical_num_1024 ] 88 [ compile repetition.cpp : <define>BOOST_PP_LIMIT_MAG=1024 : repetition_num_1024 ] 89 [ compile selection.cpp : <define>BOOST_PP_LIMIT_MAG=1024 : selection_num_1024 ] 90 [ compile seq.cpp : <define>BOOST_PP_LIMIT_MAG=1024 <define>BOOST_PP_LIMIT_SEQ=1024 : seq_num_1024 ] 91 [ compile slot.cpp : <define>BOOST_PP_LIMIT_MAG=1024 : slot_num_1024 ] 92 [ compile stringize.cpp : <define>BOOST_PP_LIMIT_MAG=1024 : stringize_num_1024 ] 93 [ compile tuple.cpp : <define>BOOST_PP_LIMIT_MAG=1024 : tuple_num_1024 ] 94 [ compile variadic.cpp : <define>BOOST_PP_LIMIT_MAG=1024 : variadic_num_1024 ] 95 ; 96 97alias preprocessor_v_128 98 : 99 [ compile array.cpp : <define>BOOST_PP_LIMIT_TUPLE=128 : array_v_128 ] 100 [ compile tuple.cpp : <define>BOOST_PP_LIMIT_TUPLE=128 : tuple_v_128 ] 101 [ compile variadic.cpp : <define>BOOST_PP_LIMIT_VARIADIC=128 <define>BOOST_PP_LIMIT_TUPLE=128 : variadic_v_128 ] 102 ; 103 104alias preprocessor_v_256 105 : 106 [ compile array.cpp : <define>BOOST_PP_LIMIT_TUPLE=256 : array_v_256 ] 107 [ compile tuple.cpp : <define>BOOST_PP_LIMIT_TUPLE=256 : tuple_v_256 ] 108 [ compile variadic.cpp : <define>BOOST_PP_LIMIT_VARIADIC=256 <define>BOOST_PP_LIMIT_TUPLE=256 : variadic_v_256 ] 109 ; 110 111alias preprocessor_c 112 : 113 [ compile arithmetic.c 114 : 115 : arithmetic_c 116 ] 117 [ compile array.c 118 : 119 : array_c 120 ] 121 [ compile comparison.c 122 : 123 : comparison_c 124 ] 125 [ compile control.c 126 : 127 : control_c 128 ] 129 [ compile debug.c 130 : 131 : debug_c 132 ] 133 [ compile facilities.c 134 : 135 : facilities_c 136 ] 137 [ compile list.c 138 : 139 : list_c 140 ] 141 [ compile logical.c 142 : 143 : logical_c 144 ] 145 [ compile punctuation.c 146 : 147 : punctuation_c 148 ] 149 [ compile selection.c 150 : 151 : selection_c 152 ] 153 [ compile seq.c 154 : 155 : seq_c 156 ] 157 [ compile slot.c 158 : 159 : slot_c 160 ] 161 [ compile stringize.c 162 : 163 : stringize_c 164 ] 165 [ compile tuple.c 166 : 167 : tuple_c 168 ] 169 [ compile variadic.c 170 : 171 : variadic_c 172 ] 173 ; 174 175alias preprocessor_number_rep_512 176 : 177 [ compile repetition.cpp : 178 <define>BOOST_PP_LIMIT_MAG=512 179 <define>BOOST_PP_LIMIT_REPEAT=512 180 <define>BOOST_PP_LIMIT_FOR=512 181 : repetition_rep_num_512 182 ] 183 ; 184 185alias preprocessor_number_rep_1024 186 : 187 [ compile repetition.cpp : 188 <define>BOOST_PP_LIMIT_MAG=1024 189 <define>BOOST_PP_LIMIT_REPEAT=1024 190 <define>BOOST_PP_LIMIT_FOR=1024 191 : repetition_rep_num_1024 192 ] 193 ; 194 195alias preprocessor_isempty : : 196 <toolset>gcc 197 <toolset-gcc:version>3.4 198 ; 199 200alias preprocessor_isempty : : 201 <toolset>gcc 202 <toolset-gcc:version>4.1 203 ; 204 205alias preprocessor_isempty : : 206 <toolset>gcc 207 <toolset-gcc:version>4.2 208 ; 209 210alias preprocessor_isempty 211 : 212 [ compile isempty.cpp ] 213 [ compile checkempty.cpp ] 214 [ compile-fail isempty_variadic_standard_failure.cpp ] 215 [ compile-fail isempty_variadic_standard_failure2.cpp ] 216 [ compile vaopt.cpp ] 217 ; 218 219alias preprocessor_isempty_c 220 : 221 [ compile isempty.c 222 : 223 : isempty_c 224 ] 225 [ compile-fail isempty_variadic_standard_failure.c 226 : 227 : isempty_variadic_standard_failure_c 228 ] 229 [ compile-fail isempty_variadic_standard_failure2.c 230 : 231 : isempty_variadic_standard_failure2_c 232 ] 233 ; 234 235alias preprocessor_config 236 : 237 [ run config_info.cpp ] 238 ; 239 240explicit preprocessor_number_512 ; 241explicit preprocessor_number_1024 ; 242explicit preprocessor_v_128 ; 243explicit preprocessor_v_256 ; 244explicit preprocessor_number_rep_512 ; 245explicit preprocessor_number_rep_1024 ; 246 247alias preprocessor_128 : preprocessor_v_128 ; 248alias preprocessor_256 : preprocessor_v_256 ; 249alias preprocessor_512 : preprocessor_number_512 preprocessor_number_rep_512 ; 250alias preprocessor_1024 : preprocessor_number_1024 preprocessor_number_rep_1024 ; 251alias preprocessor_tup : preprocessor_128 preprocessor_256 ; 252alias preprocessor_num : preprocessor_512 preprocessor_1024 ; 253alias preprocessor_limits : preprocessor_tup preprocessor_num ; 254 255explicit preprocessor_128 ; 256explicit preprocessor_256 ; 257explicit preprocessor_512 ; 258explicit preprocessor_1024 ; 259explicit preprocessor_tup ; 260explicit preprocessor_num ; 261explicit preprocessor_limits ; 262 263alias test_clang_cuda 264 : 265 [ compile [ cast _ cpp : clang_cuda.cu ] 266 : <cxxflags>-nocudalib 267 <cxxflags>-nocudainc 268 <cxxflags>"-x cuda" 269 : clang_cuda_cu 270 ] 271 ; 272 273explicit test_clang_cuda ; 274 275alias test_iso 276 : 277 [ run cpp_standard.cpp ] 278 ; 279 280explicit test_iso ; 281 282explicit compile quick.cpp ; # "Quick" test (for CI) 283