forked from Ferdi265/cxx-ring-buffer
47 lines
1.5 KiB
CMake
47 lines
1.5 KiB
CMake
if(DEFINED IDF_TARGET)
|
|
|
|
set(RING_BUFFER_NOEXCEPT ON)
|
|
set(RING_BUFFER_CONSTEXPR ON)
|
|
set(RING_BUFFER_CONSTEXPR_DESTRUCTORS ON)
|
|
|
|
else()
|
|
|
|
try_compile(cxx-least-11 ${CMAKE_BINARY_DIR}/detect ${CMAKE_SOURCE_DIR}/detect/cxxstd.cpp
|
|
COMPILE_DEFINITIONS -DCXX_STANDARD=201103
|
|
CXX_STANDARD ${CMAKE_CXX_STANDARD}
|
|
CXX_STANDARD_REQUIRED ${CMAKE_CXX_STANDARD_REQUIRED}
|
|
CXX_EXTENSIONS ${CMAKE_CXX_EXTENSIONS}
|
|
)
|
|
|
|
if(NOT cxx-least-11)
|
|
message(FATAL_ERROR "This library requires at least C++11")
|
|
endif()
|
|
|
|
if(cxx-least-11)
|
|
set(RING_BUFFER_NOEXCEPT ON)
|
|
message(STATUS "Enabling RING_BUFFER_NOEXCEPT (C++11 and up)")
|
|
endif()
|
|
|
|
try_compile(cxx-least-14 ${CMAKE_BINARY_DIR}/detect ${CMAKE_SOURCE_DIR}/detect/cxxstd.cpp
|
|
COMPILE_DEFINITIONS -DCXX_STANDARD=201402
|
|
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()
|
|
|
|
try_compile(constexpr-destructors-compile ${CMAKE_BINARY_DIR}/detect ${CMAKE_SOURCE_DIR}/detect/constexpr_destructors.cpp
|
|
CXX_STANDARD ${CMAKE_CXX_STANDARD}
|
|
CXX_STANDARD_REQUIRED ${CMAKE_CXX_STANDARD_REQUIRED}
|
|
CXX_EXTENSIONS ${CMAKE_CXX_EXTENSIONS}
|
|
)
|
|
if(constexpr-destructors-compile)
|
|
set(RING_BUFFER_CONSTEXPR_DESTRUCTORS ON)
|
|
message(STATUS "Enabling RING_BUFFER_CONSTEXPR_DESTRUCTORS (C++20 and up)")
|
|
endif()
|
|
|
|
endif()
|