forked from Ferdi265/cxx-ring-buffer
add feature detection machinery
This commit is contained in:
1 parent
ce9d000673
commit
5feb3f4f60
7 files changed
+315
-222
No files matched your search
@@ -0,0 +1,5 @@
|
||||
struct test {
|
||||
constexpr ~test() {}
|
||||
};
|
||||
|
||||
int main() {}
|
||||
@@ -0,0 +1,19 @@
|
||||
if(cxx_noexcept IN_LIST CMAKE_CXX_COMPILE_FEATURES)
|
||||
set(RING_BUFFER_NOEXCEPT ON)
|
||||
message(STATUS "Detected support for conditional noexcept")
|
||||
endif()
|
||||
|
||||
if(cxx_constexpr IN_LIST CMAKE_CXX_COMPILE_FEATURES)
|
||||
set(RING_BUFFER_CONSTEXPR ON)
|
||||
message(STATUS "Detected support for constexpr")
|
||||
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 "Detected support for constexpr destructors")
|
||||
endif()
|
||||
@@ -0,0 +1,15 @@
|
||||
if(cxx_std_20 IN_LIST CMAKE_CXX_COMPILE_FEATURES)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
elseif(cxx_std_17 IN_LIST CMAKE_CXX_COMPILE_FEATURES)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
elseif(cxx_std_14 IN_LIST CMAKE_CXX_COMPILE_FEATURES)
|
||||
set(CMAKE_CXX_STANDARD 14)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
elseif(cxx_std_11 IN_LIST CMAKE_CXX_COMPILE_FEATURES)
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
endif()
|
||||
|
||||
message(STATUS "Detected Standard Version: C++${CMAKE_CXX_STANDARD}")
|
||||
Reference in new issue
Block a user