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) cmake_minimum_required(VERSION 3.14)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
if(NOT IDF_TARGET STREQUAL "esp32")
project(test-project CXX) project(test-project CXX)
endif()
option(RING_BUFFER_DEFAULT_CXXFLAGS "enable default CXXFLAGS" OFF) option(RING_BUFFER_DEFAULT_CXXFLAGS "enable default CXXFLAGS" OFF)
option(RING_BUFFER_BUILD_TESTS "build test cases for the ring buffer library" 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) if(RING_BUFFER_DEFAULT_CXXFLAGS)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
include(detect/standard.cmake) include(${CMAKE_CURRENT_LIST_DIR}/detect/standard.cmake)
endif() endif()
if(RING_BUFFER_FEATURE_DETECT) if(RING_BUFFER_FEATURE_DETECT)
include(detect/features.cmake) include(${CMAKE_CURRENT_LIST_DIR}/detect/features.cmake)
endif() endif()
add_library(ring-buffer INTERFACE) if(IDF_TARGET STREQUAL "esp32")
target_include_directories(ring-buffer INTERFACE include/) 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) 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() endif()
if(RING_BUFFER_NOEXCEPT) 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() endif()
if(RING_BUFFER_CONSTEXPR_DESTRUCTORS) 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() endif()
if(RING_BUFFER_BUILD_TESTS) if(NOT IDF_TARGET STREQUAL "esp32")
add_subdirectory(test) if(RING_BUFFER_BUILD_TESTS)
add_subdirectory(test)
endif()
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 try_compile(cxx-least-11 ${CMAKE_BINARY_DIR}/detect ${CMAKE_SOURCE_DIR}/detect/cxxstd.cpp
COMPILE_DEFINITIONS -DCXX_STANDARD=201103 COMPILE_DEFINITIONS -DCXX_STANDARD=201103
CXX_STANDARD ${CMAKE_CXX_STANDARD} CXX_STANDARD ${CMAKE_CXX_STANDARD}
@ -34,3 +42,5 @@ if(constexpr-destructors-compile)
set(RING_BUFFER_CONSTEXPR_DESTRUCTORS ON) set(RING_BUFFER_CONSTEXPR_DESTRUCTORS ON)
message(STATUS "Enabling RING_BUFFER_CONSTEXPR_DESTRUCTORS (C++20 and up)") message(STATUS "Enabling RING_BUFFER_CONSTEXPR_DESTRUCTORS (C++20 and up)")
endif() endif()
endif()