skip tests if compiler does not support required cxx_std

This commit is contained in:
Hans Dembinski 2019-12-28 22:17:24 +01:00 committed by GitHub
parent ed9d6324d1
commit 27a49217ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 161 additions and 176 deletions

View File

@ -2,9 +2,8 @@
# Distributed under 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
# Warning: Boost-CMake support is incomplete; testing works, install target doesn't
cmake_minimum_required(VERSION 3.5...3.16)
# We support CMake 3.8, but prefer 3.16 policies and behavior
cmake_minimum_required(VERSION 3.8...3.16)
project(boost_histogram VERSION "${BOOST_SUPERPROJECT_VERSION}" LANGUAGES CXX)
@ -13,10 +12,7 @@ add_library(Boost::histogram ALIAS boost_histogram)
target_include_directories(boost_histogram INTERFACE include)
target_compile_features(boost_histogram INTERFACE
cxx_alias_templates cxx_variadic_templates cxx_decltype_auto
cxx_defaulted_functions cxx_generic_lambdas cxx_range_for
cxx_relaxed_constexpr cxx_return_type_deduction)
target_compile_features(boost_histogram INTERFACE cxx_std_14)
target_link_libraries(boost_histogram
INTERFACE

View File

@ -11,178 +11,167 @@ if (PYTHONINTERP_FOUND)
add_test(NAME runpy-${PROJECT_NAME}_check_odr_test COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/check_odr_test.py)
endif()
include(BoostTest)
if(cxx_std_14 IN_LIST CMAKE_CXX_COMPILE_FEATURES)
# keep in sync with Jamfile, this should be automatized...
boost_test(TYPE compile-fail SOURCES axis_category_fail0.cpp
LIBRARIES Boost::histogram
)
boost_test(TYPE compile-fail SOURCES axis_category_fail1.cpp
LIBRARIES Boost::histogram
)
boost_test(TYPE compile-fail SOURCES axis_category_fail2.cpp
LIBRARIES Boost::histogram
)
boost_test(TYPE compile-fail SOURCES axis_integer_fail0.cpp
LIBRARIES Boost::histogram
)
boost_test(TYPE compile-fail SOURCES axis_integer_fail1.cpp
LIBRARIES Boost::histogram
)
boost_test(TYPE compile-fail SOURCES axis_integer_fail2.cpp
LIBRARIES Boost::histogram
)
boost_test(TYPE compile-fail SOURCES axis_integer_fail3.cpp
LIBRARIES Boost::histogram
)
boost_test(TYPE compile-fail SOURCES axis_integer_fail4.cpp
LIBRARIES Boost::histogram
)
boost_test(TYPE compile-fail SOURCES axis_regular_fail0.cpp
LIBRARIES Boost::histogram
)
boost_test(TYPE compile-fail SOURCES axis_regular_fail1.cpp
LIBRARIES Boost::histogram
)
boost_test(TYPE compile-fail SOURCES axis_variable_fail0.cpp
LIBRARIES Boost::histogram
)
boost_test(TYPE compile-fail SOURCES axis_variable_fail1.cpp
LIBRARIES Boost::histogram
)
boost_test(TYPE compile-fail SOURCES make_histogram_fail0.cpp
LIBRARIES Boost::histogram
)
boost_test(TYPE compile-fail SOURCES make_histogram_fail1.cpp
LIBRARIES Boost::histogram
)
boost_test(TYPE compile-fail SOURCES histogram_fail0.cpp
LIBRARIES Boost::histogram
)
boost_test(TYPE compile-fail SOURCES histogram_fail1.cpp
LIBRARIES Boost::histogram
)
boost_test(TYPE compile-fail SOURCES histogram_fail2.cpp
LIBRARIES Boost::histogram
)
boost_test(TYPE compile-fail SOURCES histogram_fail3.cpp
LIBRARIES Boost::histogram
)
boost_test(TYPE compile-fail SOURCES histogram_fail4.cpp
LIBRARIES Boost::histogram
)
boost_test(TYPE run SOURCES accumulators_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES algorithm_project_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES algorithm_reduce_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES algorithm_sum_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES algorithm_empty_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES axis_category_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES axis_integer_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES axis_option_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES axis_regular_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES axis_size.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES axis_traits_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES axis_variable_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES axis_variant_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_accumulator_traits_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_argument_traits_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_args_type_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_axes_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_convert_integer_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_detect_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_limits_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_make_default_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_misc_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_large_int_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_iterator_adaptor_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_operators_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_relaxed_equal_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_replace_type_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_safe_comparison_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_static_if_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_tuple_slice_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES histogram_custom_axis_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES histogram_dynamic_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES histogram_fill_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES histogram_growing_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES histogram_mixed_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES histogram_operators_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES histogram_ostream_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES histogram_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES indexed_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES storage_adaptor_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES unlimited_storage_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES utility_test.cpp
LIBRARIES Boost::histogram Boost::core)
include(BoostTest)
if (cxx_std_17 IN_LIST CMAKE_CXX_COMPILE_FEATURES)
boost_test(TYPE run SOURCES deduction_guides_test.cpp
# keep in sync with Jamfile, this should be automatized...
boost_test(TYPE compile-fail SOURCES axis_category_fail0.cpp
LIBRARIES Boost::histogram)
boost_test(TYPE compile-fail SOURCES axis_category_fail1.cpp
LIBRARIES Boost::histogram)
boost_test(TYPE compile-fail SOURCES axis_category_fail2.cpp
LIBRARIES Boost::histogram)
boost_test(TYPE compile-fail SOURCES axis_integer_fail0.cpp
LIBRARIES Boost::histogram)
boost_test(TYPE compile-fail SOURCES axis_integer_fail1.cpp
LIBRARIES Boost::histogram)
boost_test(TYPE compile-fail SOURCES axis_integer_fail2.cpp
LIBRARIES Boost::histogram)
boost_test(TYPE compile-fail SOURCES axis_integer_fail3.cpp
LIBRARIES Boost::histogram)
boost_test(TYPE compile-fail SOURCES axis_integer_fail4.cpp
LIBRARIES Boost::histogram)
boost_test(TYPE compile-fail SOURCES axis_regular_fail0.cpp
LIBRARIES Boost::histogram)
boost_test(TYPE compile-fail SOURCES axis_regular_fail1.cpp
LIBRARIES Boost::histogram)
boost_test(TYPE compile-fail SOURCES axis_variable_fail0.cpp
LIBRARIES Boost::histogram)
boost_test(TYPE compile-fail SOURCES axis_variable_fail1.cpp
LIBRARIES Boost::histogram)
boost_test(TYPE compile-fail SOURCES make_histogram_fail0.cpp
LIBRARIES Boost::histogram)
boost_test(TYPE compile-fail SOURCES make_histogram_fail1.cpp
LIBRARIES Boost::histogram)
boost_test(TYPE compile-fail SOURCES histogram_fail0.cpp
LIBRARIES Boost::histogram)
boost_test(TYPE compile-fail SOURCES histogram_fail1.cpp
LIBRARIES Boost::histogram)
boost_test(TYPE compile-fail SOURCES histogram_fail2.cpp
LIBRARIES Boost::histogram)
boost_test(TYPE compile-fail SOURCES histogram_fail3.cpp
LIBRARIES Boost::histogram)
boost_test(TYPE compile-fail SOURCES histogram_fail4.cpp
LIBRARIES Boost::histogram)
boost_test(TYPE run SOURCES accumulators_test.cpp
LIBRARIES Boost::histogram Boost::core)
target_compile_features(boost_histogram-deduction_guides_test_cpp PRIVATE cxx_std_17)
boost_test(TYPE run SOURCES algorithm_project_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES algorithm_reduce_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES algorithm_sum_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES algorithm_empty_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES axis_category_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES axis_integer_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES axis_option_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES axis_regular_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES axis_size.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES axis_traits_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES axis_variable_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES axis_variant_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_accumulator_traits_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_argument_traits_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_args_type_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_axes_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_convert_integer_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_detect_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_limits_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_make_default_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_misc_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_large_int_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_iterator_adaptor_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_operators_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_relaxed_equal_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_replace_type_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_safe_comparison_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_static_if_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES detail_tuple_slice_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES histogram_custom_axis_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES histogram_dynamic_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES histogram_fill_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES histogram_growing_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES histogram_mixed_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES histogram_operators_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES histogram_ostream_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES histogram_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES indexed_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES storage_adaptor_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES unlimited_storage_test.cpp
LIBRARIES Boost::histogram Boost::core)
boost_test(TYPE run SOURCES utility_test.cpp
LIBRARIES Boost::histogram Boost::core)
if (Threads_FOUND)
boost_test(TYPE run SOURCES histogram_threaded_test.cpp
LIBRARIES Boost::histogram Boost::core Threads::Threads)
boost_test(TYPE run SOURCES storage_adaptor_threaded_test.cpp
LIBRARIES Boost::histogram Boost::core Threads::Threads)
endif()
## No cmake support yet
# boost_test(TYPE link SOURCES odr_main_test.cpp odr_test.cpp
# LIBRARIES Boost::histogram Boost::core Boost::serialization)
# boost_test(TYPE run SOURCES boost_accumulators_support_test.cpp
# LIBRARIES Boost::histogram Boost::core Boost::accumulators)
# boost_test(TYPE run SOURCES boost_range_support_test.cpp
# LIBRARIES Boost::histogram Boost::core Boost::range)
# boost_test(TYPE run SOURCES boost_units_support_test.cpp
# LIBRARIES Boost::histogram Boost::core Boost::units)
# boost_test(TYPE run SOURCES detail_array_wrapper_serialization_test.cpp LIBRARIES Boost::histogram Boost::core Boost::serialization)
# boost_test(TYPE run SOURCES unlimited_storage_serialization_test.cpp LIBRARIES Boost::histogram Boost::core Boost::serialization)
# boost_test(TYPE run SOURCES storage_adaptor_serialization_test.cpp LIBRARIES Boost::histogram Boost::core Boost::serialization)
# boost_test(TYPE run SOURCES histogram_serialization_test.cpp LIBRARIES Boost::histogram Boost::core Boost::serialization)
# boost_test(TYPE run SOURCES axis_variant_serialization_test.cpp
# LIBRARIES Boost::histogram Boost::core Boost::serialization)
# boost_test(TYPE run SOURCES accumulators_serialization_test.cpp
# LIBRARIES Boost::histogram Boost::core Boost::serialization)
endif()
if (Threads_FOUND)
boost_test(TYPE run SOURCES histogram_threaded_test.cpp
LIBRARIES Boost::histogram Boost::core Threads::Threads)
boost_test(TYPE run SOURCES storage_adaptor_threaded_test.cpp
LIBRARIES Boost::histogram Boost::core Threads::Threads)
endif()
if(cxx_std_17 IN_LIST CMAKE_CXX_COMPILE_FEATURES)
## No cmake support yet
# boost_test(TYPE link SOURCES odr_main_test.cpp odr_test.cpp
# LIBRARIES Boost::histogram Boost::core Boost::serialization)
# boost_test(TYPE run SOURCES boost_accumulators_support_test.cpp
# LIBRARIES Boost::histogram Boost::core Boost::accumulators)
# boost_test(TYPE run SOURCES boost_range_support_test.cpp
# LIBRARIES Boost::histogram Boost::core Boost::range)
# boost_test(TYPE run SOURCES boost_units_support_test.cpp
# LIBRARIES Boost::histogram Boost::core Boost::units)
# boost_test(TYPE run SOURCES detail_array_wrapper_serialization_test.cpp LIBRARIES Boost::histogram Boost::core Boost::serialization)
# boost_test(TYPE run SOURCES unlimited_storage_serialization_test.cpp LIBRARIES Boost::histogram Boost::core Boost::serialization)
# boost_test(TYPE run SOURCES storage_adaptor_serialization_test.cpp LIBRARIES Boost::histogram Boost::core Boost::serialization)
# boost_test(TYPE run SOURCES histogram_serialization_test.cpp LIBRARIES Boost::histogram Boost::core Boost::serialization)
# boost_test(TYPE run SOURCES axis_variant_serialization_test.cpp
# LIBRARIES Boost::histogram Boost::core Boost::serialization)
# boost_test(TYPE run SOURCES accumulators_serialization_test.cpp
# LIBRARIES Boost::histogram Boost::core Boost::serialization)
boost_test(TYPE run SOURCES deduction_guides_test.cpp
LIBRARIES Boost::histogram Boost::core
COMPILE_FEATURES cxx_std_17)
endif()