mirror of
https://github.com/Ferdi265/cxx-ring-buffer.git
synced 2025-06-24 22:41:33 +02:00
fix c++98 being detected as newer than c++11
This commit is contained in:
@ -22,7 +22,6 @@ endif()
|
||||
|
||||
add_library(ring-buffer INTERFACE)
|
||||
target_include_directories(ring-buffer INTERFACE include/)
|
||||
target_compile_features(ring-buffer INTERFACE cxx_std_11)
|
||||
|
||||
if(RING_BUFFER_CONSTEXPR)
|
||||
target_compile_definitions(ring-buffer INTERFACE RING_BUFFER_CONSTEXPR)
|
||||
|
5
detect/cxxstd.cpp
Normal file
5
detect/cxxstd.cpp
Normal file
@ -0,0 +1,5 @@
|
||||
#if __cpluplus < CXX_STANDARD
|
||||
#error "c++ standard not new enough"
|
||||
#endif
|
||||
|
||||
int main() {}
|
@ -1,9 +1,21 @@
|
||||
if(${CMAKE_CXX_STANDARD} GREATER_EQUAL 11)
|
||||
try_compile(cxx-least-11 ${CMAKE_BINARY_DIR}/detect ${CMAKE_SOURCE_DIR}/detect/cxxstd.cpp
|
||||
COMPILE_DEFINITIONS CXX_STANDARD=201103L
|
||||
CMAKE_CXX_STANDARD ${CMAKE_CXX_STANDARD}
|
||||
CXX_STANDARD_REQUIRED ${CMAKE_CXX_STANDARD_REQUIRED}
|
||||
CXX_EXTENSIONS ${CMAKE_CXX_EXTENSIONS}
|
||||
)
|
||||
if(cxx-least-11)
|
||||
set(RING_BUFFER_NOEXCEPT ON)
|
||||
message(STATUS "Enabling RING_BUFFER_NOEXCEPT (C++11 and up)")
|
||||
endif()
|
||||
|
||||
if(${CMAKE_CXX_STANDARD} GREATER_EQUAL 14)
|
||||
try_compile(cxx-least-14 ${CMAKE_BINARY_DIR}/detect ${CMAKE_SOURCE_DIR}/detect/cxxstd.cpp
|
||||
COMPILE_DEFINITIONS CXX_STANDARD=201402L
|
||||
CMAKE_CXX_STANDARD ${CMAKE_CXX_STANDARD}
|
||||
CXX_STANDARD_REQUIRED ${CMAKE_CXX_STANDARD_REQUIRED}
|
||||
CXX_EXTENSIONS ${CMAKE_CXX_EXTENSIONS}
|
||||
)
|
||||
if(cxx-least-14)
|
||||
set(RING_BUFFER_CONSTEXPR ON)
|
||||
message(STATUS "Enabling RING_BUFFER_CONSTEXPR (C++14 and up)")
|
||||
endif()
|
||||
|
Reference in New Issue
Block a user