diff --git a/checks/Jamfile.v2 b/checks/Jamfile.v2 new file mode 100644 index 00000000..6d13fb59 --- /dev/null +++ b/checks/Jamfile.v2 @@ -0,0 +1,373 @@ +# +# *** DO NOT EDIT THIS FILE BY HAND *** +# This file was automatically generated on Thu Jun 05 18:54:37 2014 +# by libs/config/tools/generate.cpp +# Copyright John Maddock. +# 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) + +import modules ; +import path ; + +run test_case.cpp : : : TEST_BOOST_HAS_TWO_ARG_USE_FACET : two_arg_use_facet ; +explicit two_arg_use_facet ; +run test_case.cpp : : : TEST_BOOST_HAS_BETHREADS : bethreads ; +explicit bethreads ; +run test_case.cpp : : : TEST_BOOST_HAS_CLOCK_GETTIME : clock_gettime ; +explicit clock_gettime ; +run test_case.cpp : : : TEST_BOOST_HAS_DIRENT_H : dirent_h ; +explicit dirent_h ; +run test_case.cpp : : : TEST_BOOST_HAS_EXPM1 : expm1 ; +explicit expm1 ; +run test_case.cpp : : : TEST_BOOST_HAS_FTIME : ftime ; +explicit ftime ; +run test_case.cpp : : : TEST_BOOST_HAS_GETSYSTEMTIMEASFILETIME : getsystemtimeasfiletime ; +explicit getsystemtimeasfiletime ; +run test_case.cpp : : : TEST_BOOST_HAS_GETTIMEOFDAY : gettimeofday ; +explicit gettimeofday ; +run test_case.cpp : : : TEST_BOOST_HAS_HASH : hash ; +explicit hash ; +run test_case.cpp : : : TEST_BOOST_HAS_INT128 : int128 ; +explicit int128 ; +run test_case.cpp : : : TEST_BOOST_HAS_LOG1P : log1p ; +explicit log1p ; +run test_case.cpp : : : TEST_BOOST_HAS_LONG_LONG : long_long ; +explicit long_long ; +run test_case.cpp : : : TEST_BOOST_HAS_MACRO_USE_FACET : macro_use_facet ; +explicit macro_use_facet ; +run test_case.cpp : : : TEST_BOOST_HAS_MS_INT64 : ms_int64 ; +explicit ms_int64 ; +run test_case.cpp : : : TEST_BOOST_HAS_NANOSLEEP : nanosleep ; +explicit nanosleep ; +run test_case.cpp : : : TEST_BOOST_HAS_NL_TYPES_H : nl_types_h ; +explicit nl_types_h ; +run test_case.cpp : : : TEST_BOOST_HAS_NRVO : nrvo ; +explicit nrvo ; +run test_case.cpp : : : TEST_BOOST_HAS_PARTIAL_STD_ALLOCATOR : partial_std_allocator ; +explicit partial_std_allocator ; +run test_case.cpp : : : TEST_BOOST_HAS_PTHREADS : pthreads ; +explicit pthreads ; +run test_case.cpp : : : TEST_BOOST_HAS_PTHREAD_DELAY_NP : pthread_delay_np ; +explicit pthread_delay_np ; +run test_case.cpp : : : TEST_BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE : pthread_mutexattr_settype ; +explicit pthread_mutexattr_settype ; +run test_case.cpp : : : TEST_BOOST_HAS_PTHREAD_YIELD : pthread_yield ; +explicit pthread_yield ; +run test_case.cpp : : : TEST_BOOST_HAS_RVALUE_REFS : rvalue_refs ; +explicit rvalue_refs ; +run test_case.cpp : : : TEST_BOOST_HAS_SCHED_YIELD : sched_yield ; +explicit sched_yield ; +run test_case.cpp : : : TEST_BOOST_HAS_SGI_TYPE_TRAITS : sgi_type_traits ; +explicit sgi_type_traits ; +run test_case.cpp : : : TEST_BOOST_HAS_SIGACTION : sigaction ; +explicit sigaction ; +run test_case.cpp : : : TEST_BOOST_HAS_SLIST : slist ; +explicit slist ; +run test_case.cpp : : : TEST_BOOST_HAS_STATIC_ASSERT : static_assert ; +explicit static_assert ; +run test_case.cpp : : : TEST_BOOST_HAS_STDINT_H : stdint_h ; +explicit stdint_h ; +run test_case.cpp : : : TEST_BOOST_HAS_STLP_USE_FACET : stlp_use_facet ; +explicit stlp_use_facet ; +run test_case.cpp : : : TEST_BOOST_HAS_TR1_ARRAY : tr1_array ; +explicit tr1_array ; +run test_case.cpp : : : TEST_BOOST_HAS_TR1_BIND : tr1_bind ; +explicit tr1_bind ; +run test_case.cpp : : : TEST_BOOST_HAS_TR1_COMPLEX_OVERLOADS : tr1_complex_overloads ; +explicit tr1_complex_overloads ; +run test_case.cpp : : : TEST_BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG : tr1_complex_inverse_trig ; +explicit tr1_complex_inverse_trig ; +run test_case.cpp : : : TEST_BOOST_HAS_TR1_FUNCTION : tr1_function ; +explicit tr1_function ; +run test_case.cpp : : : TEST_BOOST_HAS_TR1_HASH : tr1_hash ; +explicit tr1_hash ; +run test_case.cpp : : : TEST_BOOST_HAS_TR1_MEM_FN : tr1_mem_fn ; +explicit tr1_mem_fn ; +run test_case.cpp : : : TEST_BOOST_HAS_TR1_RANDOM : tr1_random ; +explicit tr1_random ; +run test_case.cpp : : : TEST_BOOST_HAS_TR1_REFERENCE_WRAPPER : tr1_reference_wrapper ; +explicit tr1_reference_wrapper ; +run test_case.cpp : : : TEST_BOOST_HAS_TR1_REGEX : tr1_regex ; +explicit tr1_regex ; +run test_case.cpp : : : TEST_BOOST_HAS_TR1_RESULT_OF : tr1_result_of ; +explicit tr1_result_of ; +run test_case.cpp : : : TEST_BOOST_HAS_TR1_SHARED_PTR : tr1_shared_ptr ; +explicit tr1_shared_ptr ; +run test_case.cpp : : : TEST_BOOST_HAS_TR1_TUPLE : tr1_tuple ; +explicit tr1_tuple ; +run test_case.cpp : : : TEST_BOOST_HAS_TR1_TYPE_TRAITS : tr1_type_traits ; +explicit tr1_type_traits ; +run test_case.cpp : : : TEST_BOOST_HAS_TR1_UNORDERED_MAP : tr1_unordered_map ; +explicit tr1_unordered_map ; +run test_case.cpp : : : TEST_BOOST_HAS_TR1_UNORDERED_SET : tr1_unordered_set ; +explicit tr1_unordered_set ; +run test_case.cpp : : : TEST_BOOST_HAS_TR1_UTILITY : tr1_utility ; +explicit tr1_utility ; +run test_case.cpp : : : TEST_BOOST_HAS_UNISTD_H : unistd_h ; +explicit unistd_h ; +run test_case.cpp : : : TEST_BOOST_HAS_VARIADIC_TMPL : variadic_tmpl ; +explicit variadic_tmpl ; +run test_case.cpp : : : TEST_BOOST_MSVC6_MEMBER_TEMPLATES : boost_msvc6_member_templates ; +explicit boost_msvc6_member_templates ; +run test_case.cpp : : : TEST_BOOST_MSVC_STD_ITERATOR : boost_msvc_std_iterator ; +explicit boost_msvc_std_iterator ; +run test_case.cpp : : : TEST_BOOST_HAS_WINTHREADS : winthreads ; +explicit winthreads ; +run test_case.cpp : : : TEST_BOOST_NO_ADL_BARRIER : adl_barrier ; +explicit adl_barrier ; +run test_case.cpp : : : TEST_BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP : argument_dependent_lookup ; +explicit argument_dependent_lookup ; +run test_case.cpp : : : TEST_BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS : array_type_specializations ; +explicit array_type_specializations ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_AUTO_DECLARATIONS : cxx11_auto_declarations ; +explicit cxx11_auto_declarations ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS : cxx11_auto_multideclarations ; +explicit cxx11_auto_multideclarations ; +run test_case.cpp : : : TEST_BOOST_NO_AUTO_PTR : auto_ptr ; +explicit auto_ptr ; +run test_case.cpp : : : TEST_BOOST_BCB_PARTIAL_SPECIALIZATION_BUG : boost_bcb_partial_specialization_bug ; +explicit boost_bcb_partial_specialization_bug ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_CHAR16_T : cxx11_char16_t ; +explicit cxx11_char16_t ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_CHAR32_T : cxx11_char32_t ; +explicit cxx11_char32_t ; +run test_case.cpp : : : TEST_BOOST_NO_COMPLETE_VALUE_INITIALIZATION : complete_value_initialization ; +explicit complete_value_initialization ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_CONSTEXPR : cxx11_constexpr ; +explicit cxx11_constexpr ; +run test_case.cpp : : : TEST_BOOST_NO_CTYPE_FUNCTIONS : ctype_functions ; +explicit ctype_functions ; +run test_case.cpp : : : TEST_BOOST_NO_CV_SPECIALIZATIONS : cv_specializations ; +explicit cv_specializations ; +run test_case.cpp : : : TEST_BOOST_NO_CV_VOID_SPECIALIZATIONS : cv_void_specializations ; +explicit cv_void_specializations ; +run test_case.cpp : : : TEST_BOOST_NO_CWCHAR : cwchar ; +explicit cwchar ; +run test_case.cpp : : : TEST_BOOST_NO_CWCTYPE : cwctype ; +explicit cwctype ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_ADDRESSOF : cxx11_addressof ; +explicit cxx11_addressof ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_ALIGNAS : cxx11_alignas ; +explicit cxx11_alignas ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_ALLOCATOR : cxx11_allocator ; +explicit cxx11_allocator ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_ATOMIC_SMART_PTR : cxx11_atomic_smart_ptr ; +explicit cxx11_atomic_smart_ptr ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_HDR_ARRAY : cxx11_hdr_array ; +explicit cxx11_hdr_array ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_HDR_ATOMIC : cxx11_hdr_atomic ; +explicit cxx11_hdr_atomic ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_HDR_CHRONO : cxx11_hdr_chrono ; +explicit cxx11_hdr_chrono ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_HDR_CODECVT : cxx11_hdr_codecvt ; +explicit cxx11_hdr_codecvt ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_HDR_CONDITION_VARIABLE : cxx11_hdr_condition_variable ; +explicit cxx11_hdr_condition_variable ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_HDR_FORWARD_LIST : cxx11_hdr_forward_list ; +explicit cxx11_hdr_forward_list ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_HDR_FUTURE : cxx11_hdr_future ; +explicit cxx11_hdr_future ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_HDR_INITIALIZER_LIST : cxx11_hdr_initializer_list ; +explicit cxx11_hdr_initializer_list ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_HDR_MUTEX : cxx11_hdr_mutex ; +explicit cxx11_hdr_mutex ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_HDR_RANDOM : cxx11_hdr_random ; +explicit cxx11_hdr_random ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_HDR_RATIO : cxx11_hdr_ratio ; +explicit cxx11_hdr_ratio ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_HDR_REGEX : cxx11_hdr_regex ; +explicit cxx11_hdr_regex ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_HDR_SYSTEM_ERROR : cxx11_hdr_system_error ; +explicit cxx11_hdr_system_error ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_HDR_THREAD : cxx11_hdr_thread ; +explicit cxx11_hdr_thread ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_HDR_TUPLE : cxx11_hdr_tuple ; +explicit cxx11_hdr_tuple ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_HDR_TYPEINDEX : cxx11_hdr_typeindex ; +explicit cxx11_hdr_typeindex ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_HDR_TYPE_TRAITS : cxx11_hdr_type_traits ; +explicit cxx11_hdr_type_traits ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_HDR_UNORDERED_MAP : cxx11_hdr_unordered_map ; +explicit cxx11_hdr_unordered_map ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_HDR_UNORDERED_SET : cxx11_hdr_unordered_set ; +explicit cxx11_hdr_unordered_set ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_INLINE_NAMESPACES : cxx11_inline_namespaces ; +explicit cxx11_inline_namespaces ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_NUMERIC_LIMITS : cxx11_numeric_limits ; +explicit cxx11_numeric_limits ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_REF_QUALIFIERS : cxx11_ref_qualifiers ; +explicit cxx11_ref_qualifiers ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_SMART_PTR : cxx11_smart_ptr ; +explicit cxx11_smart_ptr ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_STD_ALIGN : cxx11_std_align ; +explicit cxx11_std_align ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_TRAILING_RESULT_TYPES : cxx11_trailing_result_types ; +explicit cxx11_trailing_result_types ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_USER_DEFINED_LITERALS : cxx11_user_defined_literals ; +explicit cxx11_user_defined_literals ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_HDR_FUNCTIONAL : cxx11_hdr_functional ; +explicit cxx11_hdr_functional ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_DECLTYPE : cxx11_decltype ; +explicit cxx11_decltype ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_DECLTYPE_N3276 : cxx11_decltype_n3276 ; +explicit cxx11_decltype_n3276 ; +run test_case.cpp : : : TEST_BOOST_DEDUCED_TYPENAME : boost_deduced_typename ; +explicit boost_deduced_typename ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_DEFAULTED_FUNCTIONS : cxx11_defaulted_functions ; +explicit cxx11_defaulted_functions ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_DELETED_FUNCTIONS : cxx11_deleted_functions ; +explicit cxx11_deleted_functions ; +run test_case.cpp : : : TEST_BOOST_NO_DEPENDENT_NESTED_DERIVATIONS : dependent_nested_derivations ; +explicit dependent_nested_derivations ; +run test_case.cpp : : : TEST_BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS : dependent_types_in_template_value_parameters ; +explicit dependent_types_in_template_value_parameters ; +run test_case.cpp : : : TEST_BOOST_NO_EXCEPTIONS : exceptions ; +explicit exceptions ; +run test_case.cpp : : : TEST_BOOST_NO_EXCEPTION_STD_NAMESPACE : exception_std_namespace ; +explicit exception_std_namespace ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS : cxx11_explicit_conversion_operators ; +explicit cxx11_explicit_conversion_operators ; +run test_case.cpp : : : TEST_BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS : explicit_function_template_arguments ; +explicit explicit_function_template_arguments ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_EXTERN_TEMPLATE : cxx11_extern_template ; +explicit cxx11_extern_template ; +run test_case.cpp : : : TEST_BOOST_NO_FENV_H : fenv_h ; +explicit fenv_h ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS : cxx11_function_template_default_args ; +explicit cxx11_function_template_default_args ; +run test_case.cpp : : : TEST_BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS : function_type_specializations ; +explicit function_type_specializations ; +run test_case.cpp : : : TEST_BOOST_NO_FUNCTION_TEMPLATE_ORDERING : function_template_ordering ; +explicit function_template_ordering ; +run test_case.cpp : : : TEST_BOOST_NO_MS_INT64_NUMERIC_LIMITS : ms_int64_numeric_limits ; +explicit ms_int64_numeric_limits ; +run test_case.cpp : : : TEST_BOOST_NO_INCLASS_MEMBER_INITIALIZATION : inclass_member_initialization ; +explicit inclass_member_initialization ; +run test_case.cpp : : : TEST_BOOST_NO_INTEGRAL_INT64_T : integral_int64_t ; +explicit integral_int64_t ; +run test_case.cpp : : : TEST_BOOST_NO_IOSFWD : iosfwd ; +explicit iosfwd ; +run test_case.cpp : : : TEST_BOOST_NO_IOSTREAM : iostream ; +explicit iostream ; +run test_case.cpp : : : TEST_BOOST_NO_IS_ABSTRACT : is_abstract ; +explicit is_abstract ; +run test_case.cpp : : : TEST_BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS : templated_iterator_constructors ; +explicit templated_iterator_constructors ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_LAMBDAS : cxx11_lambdas ; +explicit cxx11_lambdas ; +run test_case.cpp : : : TEST_BOOST_NO_LIMITS : limits ; +explicit limits ; +run test_case.cpp : : : TEST_BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS : limits_compile_time_constants ; +explicit limits_compile_time_constants ; +run test_case.cpp : : : TEST_BOOST_NO_LONG_LONG_NUMERIC_LIMITS : long_long_numeric_limits ; +explicit long_long_numeric_limits ; +run test_case.cpp : : : TEST_BOOST_NO_LONG_LONG : long_long ; +explicit long_long ; +run test_case.cpp : : : TEST_BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS : member_function_specializations ; +explicit member_function_specializations ; +run test_case.cpp : : : TEST_BOOST_NO_MEMBER_TEMPLATES : member_templates ; +explicit member_templates ; +run test_case.cpp : : : TEST_BOOST_NO_MEMBER_TEMPLATE_FRIENDS : member_template_friends ; +explicit member_template_friends ; +run test_case.cpp : : : TEST_BOOST_NO_MEMBER_TEMPLATE_KEYWORD : member_template_keyword ; +explicit member_template_keyword ; +run test_case.cpp : : : TEST_BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS : pointer_to_member_template_parameters ; +explicit pointer_to_member_template_parameters ; +run test_case.cpp : : : TEST_BOOST_NO_NESTED_FRIENDSHIP : nested_friendship ; +explicit nested_friendship ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_NOEXCEPT : cxx11_noexcept ; +explicit cxx11_noexcept ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_NULLPTR : cxx11_nullptr ; +explicit cxx11_nullptr ; +run test_case.cpp : : : TEST_BOOST_NO_OPERATORS_IN_NAMESPACE : operators_in_namespace ; +explicit operators_in_namespace ; +run test_case.cpp : : : TEST_BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION : template_partial_specialization ; +explicit template_partial_specialization ; +run test_case.cpp : : : TEST_BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS : partial_specialization_implicit_default_args ; +explicit partial_specialization_implicit_default_args ; +run test_case.cpp : : : TEST_BOOST_NO_PRIVATE_IN_AGGREGATE : private_in_aggregate ; +explicit private_in_aggregate ; +run test_case.cpp : : : TEST_BOOST_NO_POINTER_TO_MEMBER_CONST : pointer_to_member_const ; +explicit pointer_to_member_const ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_RANGE_BASED_FOR : cxx11_range_based_for ; +explicit cxx11_range_based_for ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_RAW_LITERALS : cxx11_raw_literals ; +explicit cxx11_raw_literals ; +run test_case.cpp : : : TEST_BOOST_NO_UNREACHABLE_RETURN_DETECTION : unreachable_return_detection ; +explicit unreachable_return_detection ; +run test_case.cpp : : : TEST_BOOST_NO_RTTI : rtti ; +explicit rtti ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_RVALUE_REFERENCES : cxx11_rvalue_references ; +explicit cxx11_rvalue_references ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_SCOPED_ENUMS : cxx11_scoped_enums ; +explicit cxx11_scoped_enums ; +run test_case.cpp : : : TEST_BOOST_NO_SFINAE : sfinae ; +explicit sfinae ; +run test_case.cpp : : : TEST_BOOST_NO_SFINAE_EXPR : sfinae_expr ; +explicit sfinae_expr ; +run test_case.cpp : : : TEST_BOOST_NO_STRINGSTREAM : stringstream ; +explicit stringstream ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_STATIC_ASSERT : cxx11_static_assert ; +explicit cxx11_static_assert ; +run test_case.cpp : : : TEST_BOOST_NO_STDC_NAMESPACE : stdc_namespace ; +explicit stdc_namespace ; +run test_case.cpp : : : TEST_BOOST_NO_STD_ALLOCATOR : std_allocator ; +explicit std_allocator ; +run test_case.cpp : : : TEST_BOOST_NO_STD_DISTANCE : std_distance ; +explicit std_distance ; +run test_case.cpp : : : TEST_BOOST_NO_STD_ITERATOR : std_iterator ; +explicit std_iterator ; +run test_case.cpp : : : TEST_BOOST_NO_STD_ITERATOR_TRAITS : std_iterator_traits ; +explicit std_iterator_traits ; +run test_case.cpp : : : TEST_BOOST_NO_STD_LOCALE : std_locale ; +explicit std_locale ; +run test_case.cpp : : : TEST_BOOST_NO_STD_MESSAGES : std_messages ; +explicit std_messages ; +run test_case.cpp : : : TEST_BOOST_NO_STD_MIN_MAX : std_min_max ; +explicit std_min_max ; +run test_case.cpp : : : TEST_BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN : std_output_iterator_assign ; +explicit std_output_iterator_assign ; +run test_case.cpp : : : TEST_BOOST_NO_STD_TYPEINFO : std_typeinfo ; +explicit std_typeinfo ; +run test_case.cpp : : : TEST_BOOST_NO_STD_USE_FACET : std_use_facet ; +explicit std_use_facet ; +run test_case.cpp : : : TEST_BOOST_NO_STD_WSTREAMBUF : std_wstreambuf ; +explicit std_wstreambuf ; +run test_case.cpp : : : TEST_BOOST_NO_STD_WSTRING : std_wstring ; +explicit std_wstring ; +run test_case.cpp : : : TEST_BOOST_NO_SWPRINTF : swprintf ; +explicit swprintf ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_TEMPLATE_ALIASES : cxx11_template_aliases ; +explicit cxx11_template_aliases ; +run test_case.cpp : : : TEST_BOOST_NO_TEMPLATED_IOSTREAMS : templated_iostreams ; +explicit templated_iostreams ; +run test_case.cpp : : : TEST_BOOST_NO_TEMPLATE_TEMPLATES : template_templates ; +explicit template_templates ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS : cxx11_local_class_template_parameters ; +explicit cxx11_local_class_template_parameters ; +run test_case.cpp : : : TEST_BOOST_NO_TWO_PHASE_NAME_LOOKUP : two_phase_name_lookup ; +explicit two_phase_name_lookup ; +run test_case.cpp : : : TEST_BOOST_NO_TYPEID : typeid ; +explicit typeid ; +run test_case.cpp : : : TEST_BOOST_NO_TYPENAME_WITH_CTOR : typename_with_ctor ; +explicit typename_with_ctor ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_UNICODE_LITERALS : cxx11_unicode_literals ; +explicit cxx11_unicode_literals ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX : cxx11_unified_initialization_syntax ; +explicit cxx11_unified_initialization_syntax ; +run test_case.cpp : : : TEST_BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL : boost_function_scope_using_declaration_breaks_adl ; +explicit boost_function_scope_using_declaration_breaks_adl ; +run test_case.cpp : : : TEST_BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE : using_declaration_overloads_from_typename_base ; +explicit using_declaration_overloads_from_typename_base ; +run test_case.cpp : : : TEST_BOOST_NO_USING_TEMPLATE : using_template ; +explicit using_template ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_VARIADIC_MACROS : cxx11_variadic_macros ; +explicit cxx11_variadic_macros ; +run test_case.cpp : : : TEST_BOOST_NO_CXX11_VARIADIC_TEMPLATES : cxx11_variadic_templates ; +explicit cxx11_variadic_templates ; +run test_case.cpp : : : TEST_BOOST_NO_VOID_RETURNS : void_returns ; +explicit void_returns ; +run test_case.cpp : : : TEST_BOOST_NO_INTRINSIC_WCHAR_T : intrinsic_wchar_t ; +explicit intrinsic_wchar_t ; + diff --git a/checks/config.jam b/checks/config.jam new file mode 100644 index 00000000..b5e13c6d --- /dev/null +++ b/checks/config.jam @@ -0,0 +1,26 @@ +# +# *** DO NOT EDIT THIS FILE BY HAND *** +# This file was automatically generated on Wed Jun 04 18:22:48 2014 +# by libs/config/tools/generate.cpp +# Copyright John Maddock. +# 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) + +import modules ; +import testing ; +import configure ; +import project ; + +rule requires ( names + ) +{ + local result ; + for name in $(names) + { + local msg = "Boost.Config Feature Check: " ; + msg += $(name) ; + result += [ check-target-builds $(__name__:D)//$(name) $(msg:J=) : : no ] ; + } + return $(result) ; +} + diff --git a/checks/test_case.cpp b/checks/test_case.cpp new file mode 100644 index 00000000..d8136440 --- /dev/null +++ b/checks/test_case.cpp @@ -0,0 +1,737 @@ +// This file was automatically generated on Thu Jun 05 18:54:37 2014 +// by libs/config/tools/generate.cpp +// Copyright John Maddock 2002-4. +// 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) + +// See http://www.boost.org/libs/config for the most recent version.// +// Revision $Id$ +// + +#ifdef TEST_BOOST_HAS_TWO_ARG_USE_FACET +# include "../test/boost_has_2arg_use_facet.ipp" +namespace test = boost_has_two_arg_use_facet; +#endif +#ifdef TEST_BOOST_HAS_BETHREADS +# include "../test/boost_has_bethreads.ipp" +namespace test = boost_has_bethreads; +#endif +#ifdef TEST_BOOST_HAS_CLOCK_GETTIME +# include "../test/boost_has_clock_gettime.ipp" +namespace test = boost_has_clock_gettime; +#endif +#ifdef TEST_BOOST_HAS_DIRENT_H +# include "../test/boost_has_dirent_h.ipp" +namespace test = boost_has_dirent_h; +#endif +#ifdef TEST_BOOST_HAS_EXPM1 +# include "../test/boost_has_expm1.ipp" +namespace test = boost_has_expm1; +#endif +#ifdef TEST_BOOST_HAS_FTIME +# include "../test/boost_has_ftime.ipp" +namespace test = boost_has_ftime; +#endif +#ifdef TEST_BOOST_HAS_GETSYSTEMTIMEASFILETIME +# include "../test/boost_has_getsystemtimeasfiletime.ipp" +namespace test = boost_has_getsystemtimeasfiletime; +#endif +#ifdef TEST_BOOST_HAS_GETTIMEOFDAY +# include "../test/boost_has_gettimeofday.ipp" +namespace test = boost_has_gettimeofday; +#endif +#ifdef TEST_BOOST_HAS_HASH +# include "../test/boost_has_hash.ipp" +namespace test = boost_has_hash; +#endif +#ifdef TEST_BOOST_HAS_INT128 +# include "../test/boost_has_int128.ipp" +namespace test = boost_has_int128; +#endif +#ifdef TEST_BOOST_HAS_LOG1P +# include "../test/boost_has_log1p.ipp" +namespace test = boost_has_log1p; +#endif +#ifdef TEST_BOOST_HAS_LONG_LONG +# include "../test/boost_has_long_long.ipp" +namespace test = boost_has_long_long; +#endif +#ifdef TEST_BOOST_HAS_MACRO_USE_FACET +# include "../test/boost_has_macro_use_facet.ipp" +namespace test = boost_has_macro_use_facet; +#endif +#ifdef TEST_BOOST_HAS_MS_INT64 +# include "../test/boost_has_ms_int64.ipp" +namespace test = boost_has_ms_int64; +#endif +#ifdef TEST_BOOST_HAS_NANOSLEEP +# include "../test/boost_has_nanosleep.ipp" +namespace test = boost_has_nanosleep; +#endif +#ifdef TEST_BOOST_HAS_NL_TYPES_H +# include "../test/boost_has_nl_types_h.ipp" +namespace test = boost_has_nl_types_h; +#endif +#ifdef TEST_BOOST_HAS_NRVO +# include "../test/boost_has_nrvo.ipp" +namespace test = boost_has_nrvo; +#endif +#ifdef TEST_BOOST_HAS_PARTIAL_STD_ALLOCATOR +# include "../test/boost_has_part_alloc.ipp" +namespace test = boost_has_partial_std_allocator; +#endif +#ifdef TEST_BOOST_HAS_PTHREADS +# include "../test/boost_has_pthreads.ipp" +namespace test = boost_has_pthreads; +#endif +#ifdef TEST_BOOST_HAS_PTHREAD_DELAY_NP +# include "../test/boost_has_pthread_delay_np.ipp" +namespace test = boost_has_pthread_delay_np; +#endif +#ifdef TEST_BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE +# include "../test/boost_has_pthread_ma_st.ipp" +namespace test = boost_has_pthread_mutexattr_settype; +#endif +#ifdef TEST_BOOST_HAS_PTHREAD_YIELD +# include "../test/boost_has_pthread_yield.ipp" +namespace test = boost_has_pthread_yield; +#endif +#ifdef TEST_BOOST_HAS_RVALUE_REFS +# include "../test/boost_has_rvalue_refs.ipp" +namespace test = boost_has_rvalue_refs; +#endif +#ifdef TEST_BOOST_HAS_SCHED_YIELD +# include "../test/boost_has_sched_yield.ipp" +namespace test = boost_has_sched_yield; +#endif +#ifdef TEST_BOOST_HAS_SGI_TYPE_TRAITS +# include "../test/boost_has_sgi_type_traits.ipp" +namespace test = boost_has_sgi_type_traits; +#endif +#ifdef TEST_BOOST_HAS_SIGACTION +# include "../test/boost_has_sigaction.ipp" +namespace test = boost_has_sigaction; +#endif +#ifdef TEST_BOOST_HAS_SLIST +# include "../test/boost_has_slist.ipp" +namespace test = boost_has_slist; +#endif +#ifdef TEST_BOOST_HAS_STATIC_ASSERT +# include "../test/boost_has_static_assert.ipp" +namespace test = boost_has_static_assert; +#endif +#ifdef TEST_BOOST_HAS_STDINT_H +# include "../test/boost_has_stdint_h.ipp" +namespace test = boost_has_stdint_h; +#endif +#ifdef TEST_BOOST_HAS_STLP_USE_FACET +# include "../test/boost_has_stlp_use_facet.ipp" +namespace test = boost_has_stlp_use_facet; +#endif +#ifdef TEST_BOOST_HAS_TR1_ARRAY +# include "../test/boost_has_tr1_array.ipp" +namespace test = boost_has_tr1_array; +#endif +#ifdef TEST_BOOST_HAS_TR1_BIND +# include "../test/boost_has_tr1_bind.ipp" +namespace test = boost_has_tr1_bind; +#endif +#ifdef TEST_BOOST_HAS_TR1_COMPLEX_OVERLOADS +# include "../test/boost_has_tr1_complex_over.ipp" +namespace test = boost_has_tr1_complex_overloads; +#endif +#ifdef TEST_BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG +# include "../test/boost_has_tr1_complex_trig.ipp" +namespace test = boost_has_tr1_complex_inverse_trig; +#endif +#ifdef TEST_BOOST_HAS_TR1_FUNCTION +# include "../test/boost_has_tr1_function.ipp" +namespace test = boost_has_tr1_function; +#endif +#ifdef TEST_BOOST_HAS_TR1_HASH +# include "../test/boost_has_tr1_hash.ipp" +namespace test = boost_has_tr1_hash; +#endif +#ifdef TEST_BOOST_HAS_TR1_MEM_FN +# include "../test/boost_has_tr1_mem_fn.ipp" +namespace test = boost_has_tr1_mem_fn; +#endif +#ifdef TEST_BOOST_HAS_TR1_RANDOM +# include "../test/boost_has_tr1_random.ipp" +namespace test = boost_has_tr1_random; +#endif +#ifdef TEST_BOOST_HAS_TR1_REFERENCE_WRAPPER +# include "../test/boost_has_tr1_ref_wrap.ipp" +namespace test = boost_has_tr1_reference_wrapper; +#endif +#ifdef TEST_BOOST_HAS_TR1_REGEX +# include "../test/boost_has_tr1_regex.ipp" +namespace test = boost_has_tr1_regex; +#endif +#ifdef TEST_BOOST_HAS_TR1_RESULT_OF +# include "../test/boost_has_tr1_result_of.ipp" +namespace test = boost_has_tr1_result_of; +#endif +#ifdef TEST_BOOST_HAS_TR1_SHARED_PTR +# include "../test/boost_has_tr1_shared_ptr.ipp" +namespace test = boost_has_tr1_shared_ptr; +#endif +#ifdef TEST_BOOST_HAS_TR1_TUPLE +# include "../test/boost_has_tr1_tuple.ipp" +namespace test = boost_has_tr1_tuple; +#endif +#ifdef TEST_BOOST_HAS_TR1_TYPE_TRAITS +# include "../test/boost_has_tr1_type_traits.ipp" +namespace test = boost_has_tr1_type_traits; +#endif +#ifdef TEST_BOOST_HAS_TR1_UNORDERED_MAP +# include "../test/boost_has_tr1_unordered_map.ipp" +namespace test = boost_has_tr1_unordered_map; +#endif +#ifdef TEST_BOOST_HAS_TR1_UNORDERED_SET +# include "../test/boost_has_tr1_unordered_set.ipp" +namespace test = boost_has_tr1_unordered_set; +#endif +#ifdef TEST_BOOST_HAS_TR1_UTILITY +# include "../test/boost_has_tr1_utility.ipp" +namespace test = boost_has_tr1_utility; +#endif +#ifdef TEST_BOOST_HAS_UNISTD_H +# include "../test/boost_has_unistd_h.ipp" +namespace test = boost_has_unistd_h; +#endif +#ifdef TEST_BOOST_HAS_VARIADIC_TMPL +# include "../test/boost_has_variadic_tmpl.ipp" +namespace test = boost_has_variadic_tmpl; +#endif +#ifdef TEST_BOOST_MSVC6_MEMBER_TEMPLATES +# include "../test/boost_has_vc6_mem_templ.ipp" +namespace test = boost_msvc6_member_templates; +#endif +#ifdef TEST_BOOST_MSVC_STD_ITERATOR +# include "../test/boost_has_vc_iterator.ipp" +namespace test = boost_msvc_std_iterator; +#endif +#ifdef TEST_BOOST_HAS_WINTHREADS +# include "../test/boost_has_winthreads.ipp" +namespace test = boost_has_winthreads; +#endif +#ifdef TEST_BOOST_NO_ADL_BARRIER +# include "../test/boost_no_adl_barrier.ipp" +namespace test = boost_no_adl_barrier; +#endif +#ifdef TEST_BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP +# include "../test/boost_no_arg_dep_lookup.ipp" +namespace test = boost_no_argument_dependent_lookup; +#endif +#ifdef TEST_BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS +# include "../test/boost_no_array_type_spec.ipp" +namespace test = boost_no_array_type_specializations; +#endif +#ifdef TEST_BOOST_NO_CXX11_AUTO_DECLARATIONS +# include "../test/boost_no_auto_declarations.ipp" +namespace test = boost_no_cxx11_auto_declarations; +#endif +#ifdef TEST_BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +# include "../test/boost_no_auto_multidecl.ipp" +namespace test = boost_no_cxx11_auto_multideclarations; +#endif +#ifdef TEST_BOOST_NO_AUTO_PTR +# include "../test/boost_no_auto_ptr.ipp" +namespace test = boost_no_auto_ptr; +#endif +#ifdef TEST_BOOST_BCB_PARTIAL_SPECIALIZATION_BUG +# include "../test/boost_no_bcb_partial_spec.ipp" +namespace test = boost_bcb_partial_specialization_bug; +#endif +#ifdef TEST_BOOST_NO_CXX11_CHAR16_T +# include "../test/boost_no_char16_t.ipp" +namespace test = boost_no_cxx11_char16_t; +#endif +#ifdef TEST_BOOST_NO_CXX11_CHAR32_T +# include "../test/boost_no_char32_t.ipp" +namespace test = boost_no_cxx11_char32_t; +#endif +#ifdef TEST_BOOST_NO_COMPLETE_VALUE_INITIALIZATION +# include "../test/boost_no_com_value_init.ipp" +namespace test = boost_no_complete_value_initialization; +#endif +#ifdef TEST_BOOST_NO_CXX11_CONSTEXPR +# include "../test/boost_no_constexpr.ipp" +namespace test = boost_no_cxx11_constexpr; +#endif +#ifdef TEST_BOOST_NO_CTYPE_FUNCTIONS +# include "../test/boost_no_ctype_functions.ipp" +namespace test = boost_no_ctype_functions; +#endif +#ifdef TEST_BOOST_NO_CV_SPECIALIZATIONS +# include "../test/boost_no_cv_spec.ipp" +namespace test = boost_no_cv_specializations; +#endif +#ifdef TEST_BOOST_NO_CV_VOID_SPECIALIZATIONS +# include "../test/boost_no_cv_void_spec.ipp" +namespace test = boost_no_cv_void_specializations; +#endif +#ifdef TEST_BOOST_NO_CWCHAR +# include "../test/boost_no_cwchar.ipp" +namespace test = boost_no_cwchar; +#endif +#ifdef TEST_BOOST_NO_CWCTYPE +# include "../test/boost_no_cwctype.ipp" +namespace test = boost_no_cwctype; +#endif +#ifdef TEST_BOOST_NO_CXX11_ADDRESSOF +# include "../test/boost_no_cxx11_addressof.ipp" +namespace test = boost_no_cxx11_addressof; +#endif +#ifdef TEST_BOOST_NO_CXX11_ALIGNAS +# include "../test/boost_no_cxx11_alignas.ipp" +namespace test = boost_no_cxx11_alignas; +#endif +#ifdef TEST_BOOST_NO_CXX11_ALLOCATOR +# include "../test/boost_no_cxx11_allocator.ipp" +namespace test = boost_no_cxx11_allocator; +#endif +#ifdef TEST_BOOST_NO_CXX11_ATOMIC_SMART_PTR +# include "../test/boost_no_cxx11_atomic_sp.ipp" +namespace test = boost_no_cxx11_atomic_smart_ptr; +#endif +#ifdef TEST_BOOST_NO_CXX11_HDR_ARRAY +# include "../test/boost_no_cxx11_hdr_array.ipp" +namespace test = boost_no_cxx11_hdr_array; +#endif +#ifdef TEST_BOOST_NO_CXX11_HDR_ATOMIC +# include "../test/boost_no_cxx11_hdr_atomic.ipp" +namespace test = boost_no_cxx11_hdr_atomic; +#endif +#ifdef TEST_BOOST_NO_CXX11_HDR_CHRONO +# include "../test/boost_no_cxx11_hdr_chrono.ipp" +namespace test = boost_no_cxx11_hdr_chrono; +#endif +#ifdef TEST_BOOST_NO_CXX11_HDR_CODECVT +# include "../test/boost_no_cxx11_hdr_codecvt.ipp" +namespace test = boost_no_cxx11_hdr_codecvt; +#endif +#ifdef TEST_BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# include "../test/boost_no_cxx11_hdr_condition_variable.ipp" +namespace test = boost_no_cxx11_hdr_condition_variable; +#endif +#ifdef TEST_BOOST_NO_CXX11_HDR_FORWARD_LIST +# include "../test/boost_no_cxx11_hdr_forward_list.ipp" +namespace test = boost_no_cxx11_hdr_forward_list; +#endif +#ifdef TEST_BOOST_NO_CXX11_HDR_FUTURE +# include "../test/boost_no_cxx11_hdr_future.ipp" +namespace test = boost_no_cxx11_hdr_future; +#endif +#ifdef TEST_BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# include "../test/boost_no_cxx11_hdr_initializer_list.ipp" +namespace test = boost_no_cxx11_hdr_initializer_list; +#endif +#ifdef TEST_BOOST_NO_CXX11_HDR_MUTEX +# include "../test/boost_no_cxx11_hdr_mutex.ipp" +namespace test = boost_no_cxx11_hdr_mutex; +#endif +#ifdef TEST_BOOST_NO_CXX11_HDR_RANDOM +# include "../test/boost_no_cxx11_hdr_random.ipp" +namespace test = boost_no_cxx11_hdr_random; +#endif +#ifdef TEST_BOOST_NO_CXX11_HDR_RATIO +# include "../test/boost_no_cxx11_hdr_ratio.ipp" +namespace test = boost_no_cxx11_hdr_ratio; +#endif +#ifdef TEST_BOOST_NO_CXX11_HDR_REGEX +# include "../test/boost_no_cxx11_hdr_regex.ipp" +namespace test = boost_no_cxx11_hdr_regex; +#endif +#ifdef TEST_BOOST_NO_CXX11_HDR_SYSTEM_ERROR +# include "../test/boost_no_cxx11_hdr_system_error.ipp" +namespace test = boost_no_cxx11_hdr_system_error; +#endif +#ifdef TEST_BOOST_NO_CXX11_HDR_THREAD +# include "../test/boost_no_cxx11_hdr_thread.ipp" +namespace test = boost_no_cxx11_hdr_thread; +#endif +#ifdef TEST_BOOST_NO_CXX11_HDR_TUPLE +# include "../test/boost_no_cxx11_hdr_tuple.ipp" +namespace test = boost_no_cxx11_hdr_tuple; +#endif +#ifdef TEST_BOOST_NO_CXX11_HDR_TYPEINDEX +# include "../test/boost_no_cxx11_hdr_typeindex.ipp" +namespace test = boost_no_cxx11_hdr_typeindex; +#endif +#ifdef TEST_BOOST_NO_CXX11_HDR_TYPE_TRAITS +# include "../test/boost_no_cxx11_hdr_type_traits.ipp" +namespace test = boost_no_cxx11_hdr_type_traits; +#endif +#ifdef TEST_BOOST_NO_CXX11_HDR_UNORDERED_MAP +# include "../test/boost_no_cxx11_hdr_unordered_map.ipp" +namespace test = boost_no_cxx11_hdr_unordered_map; +#endif +#ifdef TEST_BOOST_NO_CXX11_HDR_UNORDERED_SET +# include "../test/boost_no_cxx11_hdr_unordered_set.ipp" +namespace test = boost_no_cxx11_hdr_unordered_set; +#endif +#ifdef TEST_BOOST_NO_CXX11_INLINE_NAMESPACES +# include "../test/boost_no_cxx11_inline_namespaces.ipp" +namespace test = boost_no_cxx11_inline_namespaces; +#endif +#ifdef TEST_BOOST_NO_CXX11_NUMERIC_LIMITS +# include "../test/boost_no_cxx11_numeric_limits.ipp" +namespace test = boost_no_cxx11_numeric_limits; +#endif +#ifdef TEST_BOOST_NO_CXX11_REF_QUALIFIERS +# include "../test/boost_no_cxx11_ref_qualifiers.ipp" +namespace test = boost_no_cxx11_ref_qualifiers; +#endif +#ifdef TEST_BOOST_NO_CXX11_SMART_PTR +# include "../test/boost_no_cxx11_smart_ptr.ipp" +namespace test = boost_no_cxx11_smart_ptr; +#endif +#ifdef TEST_BOOST_NO_CXX11_STD_ALIGN +# include "../test/boost_no_cxx11_std_align.ipp" +namespace test = boost_no_cxx11_std_align; +#endif +#ifdef TEST_BOOST_NO_CXX11_TRAILING_RESULT_TYPES +# include "../test/boost_no_cxx11_trailing_result_types.ipp" +namespace test = boost_no_cxx11_trailing_result_types; +#endif +#ifdef TEST_BOOST_NO_CXX11_USER_DEFINED_LITERALS +# include "../test/boost_no_cxx11_user_lit.ipp" +namespace test = boost_no_cxx11_user_defined_literals; +#endif +#ifdef TEST_BOOST_NO_CXX11_HDR_FUNCTIONAL +# include "../test/boost_no_cxx_hdr_functional.ipp" +namespace test = boost_no_cxx11_hdr_functional; +#endif +#ifdef TEST_BOOST_NO_CXX11_DECLTYPE +# include "../test/boost_no_decltype.ipp" +namespace test = boost_no_cxx11_decltype; +#endif +#ifdef TEST_BOOST_NO_CXX11_DECLTYPE_N3276 +# include "../test/boost_no_decltype_n3276.ipp" +namespace test = boost_no_cxx11_decltype_n3276; +#endif +#ifdef TEST_BOOST_DEDUCED_TYPENAME +# include "../test/boost_no_ded_typename.ipp" +namespace test = boost_deduced_typename; +#endif +#ifdef TEST_BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +# include "../test/boost_no_defaulted_functions.ipp" +namespace test = boost_no_cxx11_defaulted_functions; +#endif +#ifdef TEST_BOOST_NO_CXX11_DELETED_FUNCTIONS +# include "../test/boost_no_deleted_functions.ipp" +namespace test = boost_no_cxx11_deleted_functions; +#endif +#ifdef TEST_BOOST_NO_DEPENDENT_NESTED_DERIVATIONS +# include "../test/boost_no_dep_nested_class.ipp" +namespace test = boost_no_dependent_nested_derivations; +#endif +#ifdef TEST_BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS +# include "../test/boost_no_dep_val_param.ipp" +namespace test = boost_no_dependent_types_in_template_value_parameters; +#endif +#ifdef TEST_BOOST_NO_EXCEPTIONS +# include "../test/boost_no_exceptions.ipp" +namespace test = boost_no_exceptions; +#endif +#ifdef TEST_BOOST_NO_EXCEPTION_STD_NAMESPACE +# include "../test/boost_no_excep_std.ipp" +namespace test = boost_no_exception_std_namespace; +#endif +#ifdef TEST_BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +# include "../test/boost_no_explicit_cvt_ops.ipp" +namespace test = boost_no_cxx11_explicit_conversion_operators; +#endif +#ifdef TEST_BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS +# include "../test/boost_no_exp_func_tem_arg.ipp" +namespace test = boost_no_explicit_function_template_arguments; +#endif +#ifdef TEST_BOOST_NO_CXX11_EXTERN_TEMPLATE +# include "../test/boost_no_extern_template.ipp" +namespace test = boost_no_cxx11_extern_template; +#endif +#ifdef TEST_BOOST_NO_FENV_H +# include "../test/boost_no_fenv_h.ipp" +namespace test = boost_no_fenv_h; +#endif +#ifdef TEST_BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +# include "../test/boost_no_function_template_default_args.ipp" +namespace test = boost_no_cxx11_function_template_default_args; +#endif +#ifdef TEST_BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS +# include "../test/boost_no_function_type_spec.ipp" +namespace test = boost_no_function_type_specializations; +#endif +#ifdef TEST_BOOST_NO_FUNCTION_TEMPLATE_ORDERING +# include "../test/boost_no_func_tmp_order.ipp" +namespace test = boost_no_function_template_ordering; +#endif +#ifdef TEST_BOOST_NO_MS_INT64_NUMERIC_LIMITS +# include "../test/boost_no_i64_limits.ipp" +namespace test = boost_no_ms_int64_numeric_limits; +#endif +#ifdef TEST_BOOST_NO_INCLASS_MEMBER_INITIALIZATION +# include "../test/boost_no_inline_memb_init.ipp" +namespace test = boost_no_inclass_member_initialization; +#endif +#ifdef TEST_BOOST_NO_INTEGRAL_INT64_T +# include "../test/boost_no_integral_int64_t.ipp" +namespace test = boost_no_integral_int64_t; +#endif +#ifdef TEST_BOOST_NO_IOSFWD +# include "../test/boost_no_iosfwd.ipp" +namespace test = boost_no_iosfwd; +#endif +#ifdef TEST_BOOST_NO_IOSTREAM +# include "../test/boost_no_iostream.ipp" +namespace test = boost_no_iostream; +#endif +#ifdef TEST_BOOST_NO_IS_ABSTRACT +# include "../test/boost_no_is_abstract.ipp" +namespace test = boost_no_is_abstract; +#endif +#ifdef TEST_BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS +# include "../test/boost_no_iter_construct.ipp" +namespace test = boost_no_templated_iterator_constructors; +#endif +#ifdef TEST_BOOST_NO_CXX11_LAMBDAS +# include "../test/boost_no_lambdas.ipp" +namespace test = boost_no_cxx11_lambdas; +#endif +#ifdef TEST_BOOST_NO_LIMITS +# include "../test/boost_no_limits.ipp" +namespace test = boost_no_limits; +#endif +#ifdef TEST_BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS +# include "../test/boost_no_limits_const_exp.ipp" +namespace test = boost_no_limits_compile_time_constants; +#endif +#ifdef TEST_BOOST_NO_LONG_LONG_NUMERIC_LIMITS +# include "../test/boost_no_ll_limits.ipp" +namespace test = boost_no_long_long_numeric_limits; +#endif +#ifdef TEST_BOOST_NO_LONG_LONG +# include "../test/boost_no_long_long.ipp" +namespace test = boost_no_long_long; +#endif +#ifdef TEST_BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS +# include "../test/boost_no_mem_func_spec.ipp" +namespace test = boost_no_member_function_specializations; +#endif +#ifdef TEST_BOOST_NO_MEMBER_TEMPLATES +# include "../test/boost_no_mem_templates.ipp" +namespace test = boost_no_member_templates; +#endif +#ifdef TEST_BOOST_NO_MEMBER_TEMPLATE_FRIENDS +# include "../test/boost_no_mem_templ_frnds.ipp" +namespace test = boost_no_member_template_friends; +#endif +#ifdef TEST_BOOST_NO_MEMBER_TEMPLATE_KEYWORD +# include "../test/boost_no_mem_tem_keyword.ipp" +namespace test = boost_no_member_template_keyword; +#endif +#ifdef TEST_BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS +# include "../test/boost_no_mem_tem_pnts.ipp" +namespace test = boost_no_pointer_to_member_template_parameters; +#endif +#ifdef TEST_BOOST_NO_NESTED_FRIENDSHIP +# include "../test/boost_no_nested_friendship.ipp" +namespace test = boost_no_nested_friendship; +#endif +#ifdef TEST_BOOST_NO_CXX11_NOEXCEPT +# include "../test/boost_no_noexcept.ipp" +namespace test = boost_no_cxx11_noexcept; +#endif +#ifdef TEST_BOOST_NO_CXX11_NULLPTR +# include "../test/boost_no_nullptr.ipp" +namespace test = boost_no_cxx11_nullptr; +#endif +#ifdef TEST_BOOST_NO_OPERATORS_IN_NAMESPACE +# include "../test/boost_no_ops_in_namespace.ipp" +namespace test = boost_no_operators_in_namespace; +#endif +#ifdef TEST_BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +# include "../test/boost_no_partial_spec.ipp" +namespace test = boost_no_template_partial_specialization; +#endif +#ifdef TEST_BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS +# include "../test/boost_no_part_spec_def_args.ipp" +namespace test = boost_no_partial_specialization_implicit_default_args; +#endif +#ifdef TEST_BOOST_NO_PRIVATE_IN_AGGREGATE +# include "../test/boost_no_priv_aggregate.ipp" +namespace test = boost_no_private_in_aggregate; +#endif +#ifdef TEST_BOOST_NO_POINTER_TO_MEMBER_CONST +# include "../test/boost_no_ptr_mem_const.ipp" +namespace test = boost_no_pointer_to_member_const; +#endif +#ifdef TEST_BOOST_NO_CXX11_RANGE_BASED_FOR +# include "../test/boost_no_range_based_for.ipp" +namespace test = boost_no_cxx11_range_based_for; +#endif +#ifdef TEST_BOOST_NO_CXX11_RAW_LITERALS +# include "../test/boost_no_raw_literals.ipp" +namespace test = boost_no_cxx11_raw_literals; +#endif +#ifdef TEST_BOOST_NO_UNREACHABLE_RETURN_DETECTION +# include "../test/boost_no_ret_det.ipp" +namespace test = boost_no_unreachable_return_detection; +#endif +#ifdef TEST_BOOST_NO_RTTI +# include "../test/boost_no_rtti.ipp" +namespace test = boost_no_rtti; +#endif +#ifdef TEST_BOOST_NO_CXX11_RVALUE_REFERENCES +# include "../test/boost_no_rvalue_references.ipp" +namespace test = boost_no_cxx11_rvalue_references; +#endif +#ifdef TEST_BOOST_NO_CXX11_SCOPED_ENUMS +# include "../test/boost_no_scoped_enums.ipp" +namespace test = boost_no_cxx11_scoped_enums; +#endif +#ifdef TEST_BOOST_NO_SFINAE +# include "../test/boost_no_sfinae.ipp" +namespace test = boost_no_sfinae; +#endif +#ifdef TEST_BOOST_NO_SFINAE_EXPR +# include "../test/boost_no_sfinae_expr.ipp" +namespace test = boost_no_sfinae_expr; +#endif +#ifdef TEST_BOOST_NO_STRINGSTREAM +# include "../test/boost_no_sstream.ipp" +namespace test = boost_no_stringstream; +#endif +#ifdef TEST_BOOST_NO_CXX11_STATIC_ASSERT +# include "../test/boost_no_static_assert.ipp" +namespace test = boost_no_cxx11_static_assert; +#endif +#ifdef TEST_BOOST_NO_STDC_NAMESPACE +# include "../test/boost_no_stdc_namespace.ipp" +namespace test = boost_no_stdc_namespace; +#endif +#ifdef TEST_BOOST_NO_STD_ALLOCATOR +# include "../test/boost_no_std_allocator.ipp" +namespace test = boost_no_std_allocator; +#endif +#ifdef TEST_BOOST_NO_STD_DISTANCE +# include "../test/boost_no_std_distance.ipp" +namespace test = boost_no_std_distance; +#endif +#ifdef TEST_BOOST_NO_STD_ITERATOR +# include "../test/boost_no_std_iterator.ipp" +namespace test = boost_no_std_iterator; +#endif +#ifdef TEST_BOOST_NO_STD_ITERATOR_TRAITS +# include "../test/boost_no_std_iter_traits.ipp" +namespace test = boost_no_std_iterator_traits; +#endif +#ifdef TEST_BOOST_NO_STD_LOCALE +# include "../test/boost_no_std_locale.ipp" +namespace test = boost_no_std_locale; +#endif +#ifdef TEST_BOOST_NO_STD_MESSAGES +# include "../test/boost_no_std_messages.ipp" +namespace test = boost_no_std_messages; +#endif +#ifdef TEST_BOOST_NO_STD_MIN_MAX +# include "../test/boost_no_std_min_max.ipp" +namespace test = boost_no_std_min_max; +#endif +#ifdef TEST_BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN +# include "../test/boost_no_std_oi_assign.ipp" +namespace test = boost_no_std_output_iterator_assign; +#endif +#ifdef TEST_BOOST_NO_STD_TYPEINFO +# include "../test/boost_no_std_typeinfo.ipp" +namespace test = boost_no_std_typeinfo; +#endif +#ifdef TEST_BOOST_NO_STD_USE_FACET +# include "../test/boost_no_std_use_facet.ipp" +namespace test = boost_no_std_use_facet; +#endif +#ifdef TEST_BOOST_NO_STD_WSTREAMBUF +# include "../test/boost_no_std_wstreambuf.ipp" +namespace test = boost_no_std_wstreambuf; +#endif +#ifdef TEST_BOOST_NO_STD_WSTRING +# include "../test/boost_no_std_wstring.ipp" +namespace test = boost_no_std_wstring; +#endif +#ifdef TEST_BOOST_NO_SWPRINTF +# include "../test/boost_no_swprintf.ipp" +namespace test = boost_no_swprintf; +#endif +#ifdef TEST_BOOST_NO_CXX11_TEMPLATE_ALIASES +# include "../test/boost_no_template_aliases.ipp" +namespace test = boost_no_cxx11_template_aliases; +#endif +#ifdef TEST_BOOST_NO_TEMPLATED_IOSTREAMS +# include "../test/boost_no_template_streams.ipp" +namespace test = boost_no_templated_iostreams; +#endif +#ifdef TEST_BOOST_NO_TEMPLATE_TEMPLATES +# include "../test/boost_no_template_template.ipp" +namespace test = boost_no_template_templates; +#endif +#ifdef TEST_BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +# include "../test/boost_no_tem_local_classes.ipp" +namespace test = boost_no_cxx11_local_class_template_parameters; +#endif +#ifdef TEST_BOOST_NO_TWO_PHASE_NAME_LOOKUP +# include "../test/boost_no_two_phase_lookup.ipp" +namespace test = boost_no_two_phase_name_lookup; +#endif +#ifdef TEST_BOOST_NO_TYPEID +# include "../test/boost_no_typeid.ipp" +namespace test = boost_no_typeid; +#endif +#ifdef TEST_BOOST_NO_TYPENAME_WITH_CTOR +# include "../test/boost_no_typename_with_ctor.ipp" +namespace test = boost_no_typename_with_ctor; +#endif +#ifdef TEST_BOOST_NO_CXX11_UNICODE_LITERALS +# include "../test/boost_no_unicode_literals.ipp" +namespace test = boost_no_cxx11_unicode_literals; +#endif +#ifdef TEST_BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX +# include "../test/boost_no_unified_init.ipp" +namespace test = boost_no_cxx11_unified_initialization_syntax; +#endif +#ifdef TEST_BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL +# include "../test/boost_no_using_breaks_adl.ipp" +namespace test = boost_function_scope_using_declaration_breaks_adl; +#endif +#ifdef TEST_BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE +# include "../test/boost_no_using_decl_overld.ipp" +namespace test = boost_no_using_declaration_overloads_from_typename_base; +#endif +#ifdef TEST_BOOST_NO_USING_TEMPLATE +# include "../test/boost_no_using_template.ipp" +namespace test = boost_no_using_template; +#endif +#ifdef TEST_BOOST_NO_CXX11_VARIADIC_MACROS +# include "../test/boost_no_variadic_macros.ipp" +namespace test = boost_no_cxx11_variadic_macros; +#endif +#ifdef TEST_BOOST_NO_CXX11_VARIADIC_TEMPLATES +# include "../test/boost_no_variadic_templates.ipp" +namespace test = boost_no_cxx11_variadic_templates; +#endif +#ifdef TEST_BOOST_NO_VOID_RETURNS +# include "../test/boost_no_void_returns.ipp" +namespace test = boost_no_void_returns; +#endif +#ifdef TEST_BOOST_NO_INTRINSIC_WCHAR_T +# include "../test/boost_no_wchar_t.ipp" +namespace test = boost_no_intrinsic_wchar_t; +#endif + +int main( int, char *[] ) +{ + return test::test(); +} + diff --git a/doc/build_time.qbk b/doc/build_time.qbk new file mode 100644 index 00000000..d0c578a7 --- /dev/null +++ b/doc/build_time.qbk @@ -0,0 +1,65 @@ + +[section:build_config Build Time Configuration] + +There are times when you want to control whether a build target gets built or not, based +on what features the compiler supports. For example, suppose you have a test file +"test_constexpr_128.cpp" which requires three key features in order to build: + +* The `constexpr` keyword as detected by BOOST_NO_CXX11_CONSTEXPR. +* User defined literals, as detected by BOOST_NO_CXX11_USER_DEFINED_LITERALS. +* The `__int128` data type, as detected by BOOST_HAS_INT128. + +Clearly we know that if these features are not supported by the compiler, then +there's simply no point in even trying to build the test program. The main advantages being: + +* Faster compile times - build configuration uses lightweight tests the results of which are also cached. +* Less noise in build output - there's no reason to be faced with pages of template +instantiation backtrace if we know the file can never compile anyway. +* Less noise in the online test results - the test will show up as blank, rather than as a fail +in the online test matrix. +* A better experience for end users building all of Boost, if those libraries which can not be built +for the current target compiler are simply skipped, rather than generating pages of error output. + +Returning to our example, the test case is probably executed in it's Jamfile via the "run" rule: + + run test_constexpr_128.cpp ; + +We now need to make this target conditional on the necessary features. +We can do that by first importing the necessary rule at the start of the Jamfile: + + import path-to-config-lib/checks/config : requires ; + +Assuming that the test case is in the usual directory: + + libs/yourlib/test + +then the import rule will actually be: + + import ../../config/checks/config : requires ; + +Then add a "requires" rule invocation to the requirements section of the target: + + run test_constexpr_128.cpp + : : : #requirements: + [ requires cxx11_constexpr cxx11_user_defined_literals int128 ] ; + +Notice that multiple arguments can be added to the requires rule, and that these are +always the same as the Boost.Config macro name, but in lower case and with the ['boost_no_] +or ['boost_has_] prefix removed. + +When building the above example, you will see at the start of the build process the results +of the configuration, for example GCC in C++11 mode gives: + + - Boost.Config Feature Check: int128 : yes + - Boost.Config Feature Check: cxx11_constexpr : yes + - Boost.Config Feature Check: cxx11_user_defined_literals : yes + +That's all there is to this handy feature, should at any time you be unsure of the feature-test +names you can pass to the "requires" rule, then search for the Boost.Config macro of interest in +libs/config/checks/Jamfiles.v2, and the name of the feature check will follow it. + +And finally, this feature is built around the Boost.Build built in rule ['check-target-builds] +which can be used to perform more generalized build-time feature testing. The checks in this +library are provided as a convenient shorthand without the need for you to write the test cases yourself. + +[endsect] \ No newline at end of file diff --git a/doc/config.qbk b/doc/config.qbk index 8e4f6d71..fd10efc9 100644 --- a/doc/config.qbk +++ b/doc/config.qbk @@ -50,6 +50,7 @@ Distributed under the Boost Software License, Version 1.0. [include configuring_boost.qbk] [include macro_reference.qbk] +[include build_time.qbk] [include cstdint.qbk] [include guidelines.qbk] [include rationale.qbk] diff --git a/doc/html/boost_config/boost_macro_reference.html b/doc/html/boost_config/boost_macro_reference.html index 8b104733..7c553b61 100644 --- a/doc/html/boost_config/boost_macro_reference.html +++ b/doc/html/boost_config/boost_macro_reference.html @@ -7,7 +7,7 @@ - + @@ -20,7 +20,7 @@

-PrevUpHomeNext +PrevUpHomeNext

@@ -5613,7 +5613,7 @@
-PrevUpHomeNext +PrevUpHomeNext
diff --git a/doc/html/boost_config/build_config.html b/doc/html/boost_config/build_config.html new file mode 100644 index 00000000..9be6b78f --- /dev/null +++ b/doc/html/boost_config/build_config.html @@ -0,0 +1,144 @@ + + + +Build Time Configuration + + + + + + + + + + + + + + + +
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
+
+
+PrevUpHomeNext +
+
+ +

+ There are times when you want to control whether a build target gets built + or not, based on what features the compiler supports. For example, suppose + you have a test file "test_constexpr_128.cpp" which requires three + key features in order to build: +

+
    +
  • + The constexpr keyword as detected + by BOOST_NO_CXX11_CONSTEXPR. +
  • +
  • + User defined literals, as detected by BOOST_NO_CXX11_USER_DEFINED_LITERALS. +
  • +
  • + The __int128 data type, + as detected by BOOST_HAS_INT128. +
  • +
+

+ Clearly we know that if these features are not supported by the compiler, then + there's simply no point in even trying to build the test program. The main + advantages being: +

+
    +
  • + Faster compile times - build configuration uses lightweight tests the results + of which are also cached. +
  • +
  • + Less noise in build output - there's no reason to be faced with pages of + template instantiation backtrace if we know the file can never compile + anyway. +
  • +
  • + Less noise in the online test results - the test will show up as blank, + rather than as a fail in the online test matrix. +
  • +
  • + A better experience for end users building all of Boost, if those libraries + which can not be built for the current target compiler are simply skipped, + rather than generating pages of error output. +
  • +
+

+ Returning to our example, the test case is probably executed in it's Jamfile + via the "run" rule: +

+
run test_constexpr_128.cpp ;
+
+

+ We now need to make this target conditional on the necessary features. We can + do that by first importing the necessary rule at the start of the Jamfile: +

+
import path-to-config-lib/checks/config : requires ;
+
+

+ Assuming that the test case is in the usual directory: +

+
libs/yourlib/test
+
+

+ then the import rule will actually be: +

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

+ Then add a "requires" rule invocation to the requirements section + of the target: +

+
run test_constexpr_128.cpp
+   : : : #requirements:
+   [ requires cxx11_constexpr cxx11_user_defined_literals int128 ] ;
+
+

+ Notice that multiple arguments can be added to the requires rule, and that + these are always the same as the Boost.Config macro name, but in lower case + and with the boost_no_ or boost_has_ + prefix removed. +

+

+ When building the above example, you will see at the start of the build process + the results of the configuration, for example GCC in C++11 mode gives: +

+
- Boost.Config Feature Check: int128 : yes
+- Boost.Config Feature Check: cxx11_constexpr : yes
+- Boost.Config Feature Check: cxx11_user_defined_literals : yes
+
+

+ That's all there is to this handy feature, should at any time you be unsure + of the feature-test names you can pass to the "requires" rule, then + search for the Boost.Config macro of interest in libs/config/checks/Jamfiles.v2, + and the name of the feature check will follow it. +

+

+ And finally, this feature is built around the Boost.Build built in rule check-target-builds + which can be used to perform more generalized build-time feature testing. The + checks in this library are provided as a convenient shorthand without the need + for you to write the test cases yourself. +

+
+ + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/boost_config/cstdint.html b/doc/html/boost_config/cstdint.html index 450a3e5d..1baa5752 100644 --- a/doc/html/boost_config/cstdint.html +++ b/doc/html/boost_config/cstdint.html @@ -6,7 +6,7 @@ - + @@ -20,7 +20,7 @@
-PrevUpHomeNext +PrevUpHomeNext

@@ -283,7 +283,7 @@
-PrevUpHomeNext +PrevUpHomeNext
diff --git a/doc/html/index.html b/doc/html/index.html index b5958af2..f407f438 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -77,6 +77,7 @@
Macros for libraries with separate source code
+
Build Time Configuration
Standard Integer Types
Overview
@@ -967,7 +968,7 @@

- +

Last revised: June 01, 2014 at 09:50:01 GMT

Last revised: June 05, 2014 at 17:41:22 GMT


diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index c04efb59..ec1df035 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -15,6 +15,7 @@ project import modules ; +import ../checks/config : requires ; local is_unix = [ modules.peek : UNIX ] ; @@ -69,6 +70,7 @@ test-suite config [ run cstdint_test.cpp : : : all gcc:"-Wno-long-long -Wextra" darwin:-Wno-long-long ] [ run cstdint_test2.cpp : : : all gcc:"-Wno-long-long -Wextra" darwin:-Wno-long-long ] [ compile cstdint_include_test.cpp : all gcc:-Wextra ] + [ run config_build_check.cpp : : : [ requires int128 cxx11_constexpr cxx11_user_defined_literals ] ] ; obj has_clang_implicit_fallthrough : cmd_line_check.cpp : diff --git a/test/all/Jamfile.v2 b/test/all/Jamfile.v2 index 4eeafdb8..77f610c0 100644 --- a/test/all/Jamfile.v2 +++ b/test/all/Jamfile.v2 @@ -1,7 +1,7 @@ # # Regression test Jamfile for boost configuration setup. # *** DO NOT EDIT THIS FILE BY HAND *** -# This file was automatically generated on Wed May 28 17:13:04 2014 +# This file was automatically generated on Thu Jun 05 18:54:37 2014 # by libs/config/tools/generate.cpp # Copyright John Maddock. # Use, modification and distribution are subject to the diff --git a/test/config_build_check.cpp b/test/config_build_check.cpp new file mode 100644 index 00000000..b95d1c5e --- /dev/null +++ b/test/config_build_check.cpp @@ -0,0 +1,18 @@ +// Copyright John Maddock 2014. +// 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) + +// See http://www.boost.org/libs/config for the most recent version.// +// Revision $Id$ +// + +# include "../test/boost_has_int128.ipp" +# include "../test/boost_no_constexpr.ipp" +# include "../test/boost_no_cxx11_user_lit.ipp" + +int main( int, char *[] ) +{ + return boost_has_int128::test() || boost_no_cxx11_constexpr::test() || boost_no_cxx11_user_defined_literals::test(); +} + diff --git a/test/config_info.cpp b/test/config_info.cpp index 4424a0a4..cefc75ff 100644 --- a/test/config_info.cpp +++ b/test/config_info.cpp @@ -1119,6 +1119,13 @@ void print_boost_macros() + + + + + + + // END GENERATED BLOCK PRINT_MACRO(BOOST_INTEL); diff --git a/test/config_test.cpp b/test/config_test.cpp index 8fec16cc..c9f93e74 100644 --- a/test/config_test.cpp +++ b/test/config_test.cpp @@ -1,4 +1,4 @@ -// This file was automatically generated on Wed May 28 17:13:04 2014 +// This file was automatically generated on Thu Jun 05 18:54:37 2014 // by libs/config/tools/generate.cpp // Copyright John Maddock 2002-4. // Use, modification and distribution are subject to the diff --git a/tools/generate.cpp b/tools/generate.cpp index 21c70de9..ab04dd27 100644 --- a/tools/generate.cpp +++ b/tools/generate.cpp @@ -38,6 +38,8 @@ std::stringstream config_test1a; std::stringstream config_test2; std::stringstream jamfile; std::stringstream jamfile_v2; +std::stringstream build_config_test; +std::stringstream build_config_jamfile; std::set macro_list; @@ -184,6 +186,31 @@ void write_test_file(const fs::path& file, } } +void write_build_tests() +{ + fs::ofstream ofs(config_path / ".." / "checks" / "test_case.cpp"); + time_t t = std::time(0); + ofs << "// This file was automatically generated on " << std::ctime(&t); + ofs << "// by libs/config/tools/generate.cpp\n" << copyright << std::endl; + ofs << build_config_test.str() << std::endl; + ofs << "int main( int, char *[] )\n{\n" << " return test::test();\n}\n\n"; +} + +void write_build_check_jamfile() +{ + fs::ofstream ofs(config_path / ".." / "checks" / "Jamfile.v2"); + time_t t = std::time(0); + ofs << "#\n# *** DO NOT EDIT THIS FILE BY HAND ***\n" + "# This file was automatically generated on " << std::ctime(&t); + ofs << "# by libs/config/tools/generate.cpp\n" + "# Copyright John Maddock.\n" + "# Use, modification and distribution are subject to the \n" + "# Boost Software License, Version 1.0. (See accompanying file \n" + "# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\n\n" + "import modules ;\nimport path ; \n\n"; + ofs << build_config_jamfile.str() << std::endl; +} + void process_ipp_file(const fs::path& file, bool positive_test) { std::cout << "Info: Scanning file: " << file.string() << std::endl; @@ -250,6 +277,15 @@ void process_ipp_file(const fs::path& file, bool positive_test) "[ run ../" << positive_file.leaf().string() << " ]\n" "[ compile-fail ../" << negative_file.leaf().string() << " ] ;\n"; + // Generate data for the Build-checks test file: + build_config_test << "#ifdef TEST_" << macro_name << std::endl; + build_config_test << "# include \"../test/" << file.leaf().string() << "\"\n"; + build_config_test << "namespace test = " << namespace_name << ";\n#endif\n"; + + // Generate data for the build-checks Jamfile: + static const boost::regex feature_regex("boost_(?:no|has)_(.*)"); + std::string feature_name = boost::regex_replace(namespace_name, feature_regex, "\\1"); + build_config_jamfile << "run test_case.cpp : : : TEST_" << macro_name << " : " << feature_name << " ;\nexplicit " << feature_name << " ;\n"; } int cpp_main(int argc, char* argv[]) @@ -285,6 +321,8 @@ int cpp_main(int argc, char* argv[]) write_config_test(); write_jamfile_v2(); write_config_info(); + write_build_tests(); + write_build_check_jamfile(); return 0; }