From cc23764e10f5b9afc4c3a1986a0ebc7e7ac7727e Mon Sep 17 00:00:00 2001 From: Mark Kelly <1787606+kel30a@users.noreply.github.com> Date: Tue, 10 Sep 2024 03:46:50 +1000 Subject: [PATCH] Update cmakelist.txt file to support compiling in ESP IDF --- CMakeLists.txt | 50 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 18 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7a42c31..0b7878d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,28 +1,42 @@ cmake_minimum_required(VERSION 3.16) -# set the project name -project(arduino_helix) +if (DEFINED ESP_PLATFORM) + # idf component + idf_component_register( + SRC_DIRS src src/utils src/libhelix-aac src/libhelix-mp3 + INCLUDE_DIRS src src/utils src/libhelix-aac src/libhelix-mp3 + REQUIRES arduino-esp32 + ) -# lots of warnings and all warnings as errors -## add_compile_options(-Wall -Wextra ) -set(CMAKE_CXX_STANDARD 17) + target_compile_options(${COMPONENT_LIB} INTERFACE -Wno-error -Wno-format) + target_compile_options(${COMPONENT_LIB} PRIVATE -DUSE_DEFAULT_STDLIB) + add_compile_definitions(ESP32) +else() -option(MP3_EXAMPLES "build examples" OFF) + # set the project name + project(arduino_helix) -file(GLOB_RECURSE SRC_LIST_C CONFIGURE_DEPENDS "${PROJECT_SOURCE_DIR}/src/*.c" ) -file(GLOB_RECURSE SRC_LIST_CPP CONFIGURE_DEPENDS "${PROJECT_SOURCE_DIR}/src/*.cpp" ) + # lots of warnings and all warnings as errors + ## add_compile_options(-Wall -Wextra ) + set(CMAKE_CXX_STANDARD 17) -# define libraries -add_library (arduino_helix ${SRC_LIST_C} ${SRC_LIST_CPP}) + option(MP3_EXAMPLES "build examples" OFF) -# prevent compile errors -target_compile_options(arduino_helix PRIVATE -DUSE_DEFAULT_STDLIB) + file(GLOB_RECURSE SRC_LIST_C CONFIGURE_DEPENDS "${PROJECT_SOURCE_DIR}/src/*.c" ) + file(GLOB_RECURSE SRC_LIST_CPP CONFIGURE_DEPENDS "${PROJECT_SOURCE_DIR}/src/*.cpp" ) -# define location for header files -target_include_directories(arduino_helix PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}/src/libhelix-mp3 ${CMAKE_CURRENT_SOURCE_DIR}/src/libhelix-aac ) + # define libraries + add_library (arduino_helix ${SRC_LIST_C} ${SRC_LIST_CPP}) -# build examples -if(MP3_EXAMPLES) - add_subdirectory( "${CMAKE_CURRENT_SOURCE_DIR}/examples/output_mp3") - add_subdirectory( "${CMAKE_CURRENT_SOURCE_DIR}/examples/output_aac") + # prevent compile errors + target_compile_options(arduino_helix PRIVATE -DUSE_DEFAULT_STDLIB) + + # define location for header files + target_include_directories(arduino_helix PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}/src/libhelix-mp3 ${CMAKE_CURRENT_SOURCE_DIR}/src/libhelix-aac ) + + # build examples + if(MP3_EXAMPLES) + add_subdirectory( "${CMAKE_CURRENT_SOURCE_DIR}/examples/output_mp3") + add_subdirectory( "${CMAKE_CURRENT_SOURCE_DIR}/examples/output_aac") + endif() endif() \ No newline at end of file