1#============================================================================== 2# Copyright (c) 2001-2013 Joel de Guzman 3# Copyright (c) 2001-2012 Hartmut Kaiser 4# Copyright (c) 2011 Bryce Lelbach 5# 6# Use, modification and distribution is subject to the Boost Software 7# License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 8# http://www.boost.org/LICENSE_1_0.txt) 9#============================================================================== 10 11import config : requires ; 12import modules ; 13import feature ; 14import testing ; 15 16############################################################################### 17 18project spirit-x3 19 : requirements 20 <include>. 21 <c++-template-depth>512 22 [ requires 23 # Assume all the cxx11 checks succeed if any of cxx14 does. 24 #cxx14_binary_literals # grep -Er "[0-9]+b[0-9]+" * 25 #cxx14_constexpr 26 cxx14_decltype_auto # grep -r "decltype(auto)" * 27 #cxx14_digit_separators # grep -Er "[0-9]+'[0-9]+" * 28 cxx14_generic_lambdas # grep -Er "]\s*\\([^\\)]*auto" * 29 #cxx14_hdr_shared_mutex # grep -r "shared_mutex" * 30 #cxx14_initialized_lambda_captures # grep -Er "\\[[^=\\]]+=" * 31 #cxx14_aggregate_nsdmi 32 cxx14_return_type_deduction # grep -Er "auto[^\\(=\\)]+\(" * 33 #cxx14_std_exchange # grep -r "exchange" * 34 cxx14_variable_templates 35 ] 36 ; 37 38############################################################################### 39 40local subproject-name = x3 ; 41 42rule run ( sources + : args * : input-files * 43 : requirements * : target-name ? : default-build * ) 44{ 45 target-name ?= $(subproject-name)_$(sources[1]:D=:S=) ; 46 return [ testing.run $(sources) : $(args) : $(input-files) 47 : $(requirements) : $(target-name) : $(default-build) ] ; 48} 49 50rule compile ( sources + : requirements * : target-name ? ) 51{ 52 target-name ?= $(subproject-name)_$(sources[1]:D=:S=) ; 53 return [ testing.compile $(sources) 54 : $(requirements) : $(target-name) ] ; 55} 56 57rule compile-fail ( sources + : requirements * : target-name ? ) 58{ 59 target-name ?= $(subproject-name)_$(sources[1]:D=:S=) ; 60 return [ testing.compile-fail $(sources) 61 : $(requirements) : $(target-name) ] ; 62} 63 64############################################################################### 65 66run actions.cpp ; 67run alternative.cpp ; 68run and_predicate.cpp ; 69run any_parser.cpp ; 70run attr.cpp ; 71run binary.cpp ; 72run bool.cpp ; 73run char1.cpp ; 74run char_class.cpp ; 75run container_support.cpp ; 76run debug.cpp ; 77run difference.cpp ; 78run eoi.cpp ; 79run eol.cpp ; 80run eps.cpp ; 81run expect.cpp ; 82run extract_int.cpp ; 83run int1.cpp ; 84run kleene.cpp ; 85run lexeme.cpp ; 86run lit1.cpp ; 87run lit2.cpp ; 88run list.cpp ; 89run matches.cpp ; 90run no_case.cpp ; 91run no_skip.cpp ; 92run not_predicate.cpp ; 93run omit.cpp ; 94run optional.cpp ; 95run plus.cpp ; 96run with.cpp ; 97 98run raw.cpp ; 99run real1.cpp ; 100run real2.cpp ; 101run real3.cpp ; 102run real4.cpp ; 103run rule1.cpp ; 104run rule2.cpp ; 105run rule3.cpp ; 106run rule4.cpp ; 107run sequence.cpp ; 108run skip.cpp ; 109run symbols1.cpp ; 110run symbols2.cpp ; 111run symbols3.cpp ; 112run tst.cpp ; 113 114run uint1.cpp ; 115run uint_radix.cpp ; 116 117run confix.cpp ; 118run repeat.cpp ; 119run seek.cpp ; 120 121run unused_type.cpp ; 122run attribute_type_check.cpp ; 123run fusion_map.cpp ; 124run x3_variant.cpp ; 125run error_handler.cpp ; 126run iterator_check.cpp ; 127 128run to_utf8.cpp ; 129 130obj rule_separate_tu_grammar : rule_separate_tu_grammar.cpp ; 131run rule_separate_tu.cpp rule_separate_tu_grammar ; 132 133obj grammar_linker : grammar.cpp ; 134run grammar_linker.cpp grammar_linker ; 135