From 97c4bed1ecdda37cd5d01dfed5cfb3ed006f2517 Mon Sep 17 00:00:00 2001 From: Ferdinand Bachmann Date: Sat, 18 Apr 2020 13:56:49 +0200 Subject: [PATCH] fix feature detection for strong enough constexpr --- CMakeLists.txt | 2 +- detect/features.cmake | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f4f1b84..d63f40f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,7 +8,7 @@ option(RING_BUFFER_BUILD_TESTS "build test cases for the ring buffer library" ON option(RING_BUFFER_FEATURE_DETECT "try to detect if c++ features are supported" ON) option(RING_BUFFER_NOEXCEPT "enable conditionally noexcept ring_buffer (c++11)" OFF) -option(RING_BUFFER_CONSTEXPR "enable constexpr ring_buffer (c++11)" OFF) +option(RING_BUFFER_CONSTEXPR "enable constexpr ring_buffer (c++14)" OFF) option(RING_BUFFER_CONSTEXPR_DESTRUCTORS "enable constexpr destructor for ring_buffer (c++20)" OFF) if(RING_BUFFER_CXXFLAGS) diff --git a/detect/features.cmake b/detect/features.cmake index f66417b..cc63934 100644 --- a/detect/features.cmake +++ b/detect/features.cmake @@ -1,11 +1,11 @@ -if(cxx_noexcept IN_LIST CMAKE_CXX_COMPILE_FEATURES) +if(${CMAKE_CXX_STANDARD} GREATER_EQUAL 11) set(RING_BUFFER_NOEXCEPT ON) - message(STATUS "Detected support for conditional noexcept") + message(STATUS "Enabling RING_BUFFER_NOEXCEPT (C++11 and up)") endif() -if(cxx_constexpr IN_LIST CMAKE_CXX_COMPILE_FEATURES) +if(${CMAKE_CXX_STANDARD} GREATER_EQUAL 14) set(RING_BUFFER_CONSTEXPR ON) - message(STATUS "Detected support for constexpr") + message(STATUS "Enabling RING_BUFFER_CONSTEXPR (C++14 and up)") endif() try_compile(constexpr-destructors-compile ${CMAKE_BINARY_DIR}/detect ${CMAKE_SOURCE_DIR}/detect/constexpr_destructors.cpp @@ -15,5 +15,5 @@ try_compile(constexpr-destructors-compile ${CMAKE_BINARY_DIR}/detect ${CMAKE_SOU ) if(constexpr-destructors-compile) set(RING_BUFFER_CONSTEXPR_DESTRUCTORS ON) - message(STATUS "Detected support for constexpr destructors") + message(STATUS "Enabling RING_BUFFER_CONSTEXPR_DESTRUCTORS (C++20 and up)") endif()