Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / config / test / Jamfile.v2
1 #
2 # Copyright John Maddock 2008.
3 # Use, modification and distribution are subject to the
4 # Boost Software License, Version 1.0. (See accompanying file
5 # LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 #
7 # If you need to alter build preferences then set them in
8 # the template defined in options_v2.jam.
9 #
10
11 import feature ;
12 import testing ;
13
14 project
15     : requirements
16       <toolset>gcc:<cxxflags>-Wno-deprecated-declarations
17 ;
18
19
20 import modules ;
21 import ../checks/config : requires ;
22
23 local is_unix = [ modules.peek : UNIX ] ;
24
25 lib atomic ;
26 lib pthread ;
27 lib rt ;
28
29 exe has_atomic_lib : config_info.cpp atomic ;
30 explicit has_atomic_lib ;
31 exe has_pthread_lib : config_info.cpp pthread ;
32 explicit has_pthread_lib ;
33 exe has_rt_lib : config_info.cpp rt ;
34 explicit has_rt_lib ;
35
36 test-suite config
37   :
38     [ compile config_test_c.c ]
39     [ run config_test.cpp
40           : #args
41           : #input-files
42           : #requirements
43           <threading>multi
44           [ check-target-builds has_atomic_lib : <source>atomic ]
45           [ check-target-builds has_pthread_lib : <source>pthread ]
46           [ check-target-builds has_rt_lib : <source>rt ]
47           : config_test_threaded
48     ]
49     [ run config_test.cpp
50           : #args
51           : #input-files
52           : #requirements
53           <threading>single <toolset>msvc:<runtime-link>static <toolset>msvc:<link>static
54           [ check-target-builds has_atomic_lib : <source>atomic ]
55           [ check-target-builds has_pthread_lib : <source>pthread ]
56           [ check-target-builds has_rt_lib : <source>rt ]
57     ]
58     [ run config_test.cpp
59           : #args
60           : #input-files
61           : #requirements
62           <rtti>off
63           <toolset>gcc-4.4.7,<cxxstd>0x:<build>no # <memory> does not compile with -fno-rtti
64           [ check-target-builds has_atomic_lib : <source>atomic ]
65           [ check-target-builds has_pthread_lib : <source>pthread ]
66           [ check-target-builds has_rt_lib : <source>rt ]
67           : config_test_no_rtti
68     ]
69     [ run config_test.cpp
70           : #args
71           : #input-files
72           : #requirements
73           <exception-handling>off
74           <target-os>vxworks:<build>no      # vx requires complete library rebuild to turn off exceptions
75           [ check-target-builds has_atomic_lib : <source>atomic ]
76           [ check-target-builds has_pthread_lib : <source>pthread ]
77           [ check-target-builds has_rt_lib : <source>rt ]
78           : config_test_no_except
79     ]
80      [ 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 ]
81      [ 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 ]
82      [ 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 ]
83      [ run config_info.cpp : : : <test-info>always_show_run_output <exception-handling>off 
84                 <target-os>vxworks:<build>no      
85                 : config_info_no_except ]
86      [ run math_info.cpp : : : <test-info>always_show_run_output <toolset>borland:<runtime-link>static <toolset>borland:<link>static ]
87      [ run abi/abi_test.cpp abi/main.cpp ]
88      [ run limits_test.cpp ]
89      [ run link/main.cpp link//link_test
90           : #args
91           : #input-files
92           : #requirements
93           <runtime-link>shared
94           <define>BOOST_DYN_LINK=1
95           <define>BOOST_CONFIG_NO_LIB=1
96           <target-os>vxworks:<link>shared  
97           :
98           config_link_test
99     ]
100     [ compile-fail threads/test_thread_fail1.cpp ]
101     [ compile-fail threads/test_thread_fail2.cpp ]
102     [ 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 ] ]
103     [ compile helper_macro_test.cpp ]
104     [ run cstdint_test.cpp : : : <warnings>all <toolset>gcc:<cxxflags>"-Wno-long-long -Wextra" <toolset>darwin:<cxxflags>-Wno-long-long ]
105     [ run cstdint_test2.cpp : : : <warnings>all <toolset>gcc:<cxxflags>"-Wno-long-long -Wextra" <toolset>darwin:<cxxflags>-Wno-long-long ]
106     [ compile cstdint_include_test.cpp : <warnings>all <toolset>gcc:<cxxflags>-Wextra ]
107     [ run config_build_check.cpp : : : [ requires int128 cxx11_constexpr cxx11_user_defined_literals cpp_lib_complex_udls cpp_range_based_for_17 ] ]
108     [ run helper_macros_test.cpp ]
109     [ compile pragma_message_test.cpp ]
110     [ compile header_deprecated_test.cpp ]
111   ;
112
113 obj has_clang_implicit_fallthrough : cmd_line_check.cpp :
114                 <toolset>clang:<cxxflags>"-std=c++11 -Wimplicit-fallthrough" <warnings-as-errors>on <warnings>all ;
115
116 explicit has_clang_implicit_fallthrough ;
117
118 exe config_info_printer : config_info.cpp ;
119 explicit config_info_printer ;
120
121 actions print-run
122 {
123       echo With Standard Version $(STANDARD:E=default)
124       echo =====================================================================
125       $(>)
126 }
127
128 rule print-run ( target : sources * : properties * )
129 {
130     STANDARD on $(target) = [ feature.get-values <cxxstd> : $(properties) ] ;
131 }
132
133 notfile print_config_info : @print-run : config_info_printer ;
134 explicit print_config_info ;
135
136 # Backwards compatibility:
137 exe config_info_travis : config_info.cpp ;
138 install config_info_travis_install : config_info_travis : <location>. ;
139 explicit config_info_travis_install ;
140