cmake_minimum_required(VERSION 3.16) if(ESP_PLATFORM) # --------------------------------------------------------------------------- # Сборка как компонента ESP-IDF (корень репозитория = компонент; имя # компонента = имя каталога, из которого он подключён). # ВАЖНО: cmake_minimum_required должен остаться до этой ветки, project() # для IDF-сборки не вызывается. # --------------------------------------------------------------------------- idf_component_register( SRCS "src/ayla/httpd.cpp" "src/ayla/log.cpp" "src/ayla/platform/esp-idf/platform.cpp" INCLUDE_DIRS "include" PRIV_INCLUDE_DIRS "src" PRIV_REQUIRES lwip esp_timer esp_hw_support pthread ) target_compile_options(${COMPONENT_LIB} PRIVATE -Wall -Wextra -Werror -fno-exceptions -fno-rtti ) target_compile_features(${COMPONENT_LIB} PUBLIC cxx_std_20) else() # --------------------------------------------------------------------------- # Обычная (POSIX) сборка: статическая библиотека + тесты. # --------------------------------------------------------------------------- project(fgl-aircon VERSION 0.1.0 LANGUAGES CXX) option(FGL_BUILD_TESTS "Build tests" ON) add_library(fgl-aircon STATIC src/ayla/httpd.cpp src/ayla/log.cpp src/ayla/platform/posix/platform.cpp ) target_include_directories(fgl-aircon PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include" PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/src" ) target_compile_features(fgl-aircon PUBLIC cxx_std_20) target_compile_options(fgl-aircon PRIVATE -Wall -Wextra -Werror -fno-exceptions -fno-rtti ) if(FGL_BUILD_TESTS) enable_testing() add_subdirectory(tests) endif() endif()