Some changes required to get this compiling with esp-idf cmake

This commit is contained in:
2021-02-09 16:59:47 +01:00
parent 28d44160f3
commit 6d43e2bcc4
2 changed files with 31 additions and 9 deletions

View File

@ -1,7 +1,9 @@
cmake_minimum_required(VERSION 3.14)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
if(NOT IDF_TARGET STREQUAL "esp32")
project(test-project CXX)
endif()
option(RING_BUFFER_DEFAULT_CXXFLAGS "enable default CXXFLAGS" OFF)
option(RING_BUFFER_BUILD_TESTS "build test cases for the ring buffer library" OFF)
@ -13,26 +15,36 @@ option(RING_BUFFER_CONSTEXPR_DESTRUCTORS "enable constexpr destructor for ring_b
if(RING_BUFFER_DEFAULT_CXXFLAGS)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
include(detect/standard.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/detect/standard.cmake)
endif()
if(RING_BUFFER_FEATURE_DETECT)
include(detect/features.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/detect/features.cmake)
endif()
add_library(ring-buffer INTERFACE)
target_include_directories(ring-buffer INTERFACE include/)
if(IDF_TARGET STREQUAL "esp32")
idf_component_register(INCLUDE_DIRS include)
set(RING_BUFFER_TARGET_NAME ${COMPONENT_TARGET})
else()
set(RING_BUFFER_TARGET_NAME ${COMPONENT_TARGET})
add_library(${RING_BUFFER_TARGET_NAME} INTERFACE)
target_include_directories(${RING_BUFFER_TARGET_NAME} INTERFACE include/)
endif()
if(RING_BUFFER_CONSTEXPR)
target_compile_definitions(ring-buffer INTERFACE RING_BUFFER_CONSTEXPR)
target_compile_definitions(${RING_BUFFER_TARGET_NAME} INTERFACE RING_BUFFER_CONSTEXPR)
endif()
if(RING_BUFFER_NOEXCEPT)
target_compile_definitions(ring-buffer INTERFACE RING_BUFFER_NOEXCEPT)
target_compile_definitions(${RING_BUFFER_TARGET_NAME} INTERFACE RING_BUFFER_NOEXCEPT)
endif()
if(RING_BUFFER_CONSTEXPR_DESTRUCTORS)
target_compile_definitions(ring-buffer INTERFACE RING_BUFFER_CONSTEXPR_DESTRUCTORS)
target_compile_definitions(${RING_BUFFER_TARGET_NAME} INTERFACE RING_BUFFER_CONSTEXPR_DESTRUCTORS)
endif()
if(RING_BUFFER_BUILD_TESTS)
add_subdirectory(test)
if(NOT IDF_TARGET STREQUAL "esp32")
if(RING_BUFFER_BUILD_TESTS)
add_subdirectory(test)
endif()
endif()

View File

@ -1,3 +1,11 @@
if(IDF_TARGET STREQUAL "esp32")
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}
@ -34,3 +42,5 @@ if(constexpr-destructors-compile)
set(RING_BUFFER_CONSTEXPR_DESTRUCTORS ON)
message(STATUS "Enabling RING_BUFFER_CONSTEXPR_DESTRUCTORS (C++20 and up)")
endif()
endif()