summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/config/test/Jamfile.v2
blob: 5b2a9ad900026d8e420c0650689084e992f3af76 (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
#
# Copyright John Maddock 2008.
# Use, modification and distribution are 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)
#
# If you need to alter build preferences then set them in
# the template defined in options_v2.jam.
#

import feature ;
import testing ;

project
    : requirements
      <toolset>gcc:<cxxflags>-Wno-deprecated-declarations
;


import modules ;
import ../checks/config : requires ;

local is_unix = [ modules.peek : UNIX ] ;

lib atomic ;
lib pthread ;
lib rt ;

exe has_atomic_lib : config_info.cpp atomic ;
explicit has_atomic_lib ;
exe has_pthread_lib : config_info.cpp pthread ;
explicit has_pthread_lib ;
exe has_rt_lib : config_info.cpp rt ;
explicit has_rt_lib ;

test-suite config
  :
    [ compile config_test_c.c ]
    [ run config_test.cpp
          : #args
          : #input-files
          : #requirements
          <threading>multi
          [ check-target-builds has_atomic_lib : <source>atomic ]
          [ check-target-builds has_pthread_lib : <source>pthread ]
          [ check-target-builds has_rt_lib : <source>rt ]
          : config_test_threaded
    ]
    [ run config_test.cpp
          : #args
          : #input-files
          : #requirements
          <threading>single <toolset>msvc:<runtime-link>static <toolset>msvc:<link>static
          [ check-target-builds has_atomic_lib : <source>atomic ]
          [ check-target-builds has_pthread_lib : <source>pthread ]
          [ check-target-builds has_rt_lib : <source>rt ]
    ]
    [ run config_test.cpp
          : #args
          : #input-files
          : #requirements
          <rtti>off
          <toolset>gcc-4.4.7,<cxxstd>0x:<build>no # <memory> does not compile with -fno-rtti
          [ check-target-builds has_atomic_lib : <source>atomic ]
          [ check-target-builds has_pthread_lib : <source>pthread ]
          [ check-target-builds has_rt_lib : <source>rt ]
          : config_test_no_rtti
    ]
    [ run config_test.cpp
          : #args
          : #input-files
          : #requirements
          <exception-handling>off
          <target-os>vxworks:<build>no      # vx requires complete library rebuild to turn off exceptions
          [ check-target-builds has_atomic_lib : <source>atomic ]
          [ check-target-builds has_pthread_lib : <source>pthread ]
          [ check-target-builds has_rt_lib : <source>rt ]
          : config_test_no_except
    ]
     [ run config_info.cpp : : : <test-info>always_show_run_output <threading>single <toolset>msvc:<runtime-link>static <toolset>msvc:<link>static <toolset>msvc:<warnings-as-errors>on <toolset>gcc:<warnings-as-errors>on <toolset>clang:<warnings-as-errors>on ]
     [ run config_info.cpp : : : <test-info>always_show_run_output <threading>multi <toolset>msvc:<warnings-as-errors>on <toolset>gcc:<warnings-as-errors>on <toolset>clang:<warnings-as-errors>on : config_info_threaded ]
     [ run config_info.cpp : : : <test-info>always_show_run_output <rtti>off <toolset>msvc:<warnings-as-errors>on <toolset>gcc:<warnings-as-errors>on <toolset>clang:<warnings-as-errors>on : config_info_no_rtti ]
     [ run config_info.cpp : : : <test-info>always_show_run_output <exception-handling>off 
     		<target-os>vxworks:<build>no      
     		: config_info_no_except ]
     [ run math_info.cpp : : : <test-info>always_show_run_output <toolset>borland:<runtime-link>static <toolset>borland:<link>static ]
     [ run abi/abi_test.cpp abi/main.cpp ]
     [ run limits_test.cpp ]
     [ run link/main.cpp link//link_test
          : #args
          : #input-files
          : #requirements
          <runtime-link>shared
          <define>BOOST_DYN_LINK=1
          <define>BOOST_CONFIG_NO_LIB=1
          <target-os>vxworks:<link>shared  
          :
          config_link_test
    ]
    [ compile-fail threads/test_thread_fail1.cpp ]
    [ compile-fail threads/test_thread_fail2.cpp ]
    [ compile boost_fallthrough_test.cpp : [ check-target-builds has_clang_implicit_fallthrough "Clang implicit fallthrough" : <toolset>clang:<cxxflags>"-std=c++11 -Wimplicit-fallthrough" <warnings-as-errors>on <warnings>all ] ]
    [ compile helper_macro_test.cpp ]
    [ run cstdint_test.cpp : : : <warnings>all <toolset>gcc:<cxxflags>"-Wno-long-long -Wextra" <toolset>darwin:<cxxflags>-Wno-long-long ]
    [ run cstdint_test2.cpp : : : <warnings>all <toolset>gcc:<cxxflags>"-Wno-long-long -Wextra" <toolset>darwin:<cxxflags>-Wno-long-long ]
    [ compile cstdint_include_test.cpp : <warnings>all <toolset>gcc:<cxxflags>-Wextra ]
    [ run config_build_check.cpp : : : [ requires int128 cxx11_constexpr cxx11_user_defined_literals cpp_lib_complex_udls cpp_range_based_for_17 ] ]
    [ run helper_macros_test.cpp ]
    [ compile pragma_message_test.cpp ]
    [ compile header_deprecated_test.cpp ]
  ;

obj has_clang_implicit_fallthrough : cmd_line_check.cpp :
		<toolset>clang:<cxxflags>"-std=c++11 -Wimplicit-fallthrough" <warnings-as-errors>on <warnings>all ;

explicit has_clang_implicit_fallthrough ;

exe config_info_printer : config_info.cpp ;
explicit config_info_printer ;

actions print-run
{
      echo With Standard Version $(STANDARD:E=default)
      echo =====================================================================
      $(>)
}

rule print-run ( target : sources * : properties * )
{
    STANDARD on $(target) = [ feature.get-values <cxxstd> : $(properties) ] ;
}

notfile print_config_info : @print-run : config_info_printer ;
explicit print_config_info ;

# Backwards compatibility:
exe config_info_travis : config_info.cpp ;
install config_info_travis_install : config_info_travis : <location>. ;
explicit config_info_travis_install ;