123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- # This file is in the 'test' directory of your project
- cmake_minimum_required(VERSION 3.5)
- set(PROJECT_VER $ENV{PROJECT_VER})
- add_definitions(-DMODEL_NAME=SqueezeESP32)
- if(NOT DEFINED DEPTH)
- set(DEPTH "16")
- endif()
- # State machine hierarchy enabled and logging enabled
- add_definitions(-DSTATE_MACHINE_LOGGER=1)
- add_definitions(-DHIERARCHICAL_STATES=1)
- add_definitions(-DTESTPROJECT=1)
- # Align the nanopb library options across the entire project
- # otherwise this results in nasty structures misalignment
- # when implementing callbacks
- add_definitions(-DPB_ENABLE_MALLOC -DPB_FIELD_32BIT)
- # Include the components directory to make the main components available
- set(EXTRA_COMPONENT_DIRS "../components")
- # Register the test components directory
- list(APPEND EXTRA_COMPONENT_DIRS "test_main")
- # Include the main ESP-IDF CMakeLists file
- include($ENV{IDF_PATH}/tools/cmake/project.cmake)
- # Set the components to include the tests for.
- # This can be overriden from CMake cache:
- # - when invoking CMake directly: cmake -D TEST_COMPONENTS="xxxxx" ..
- # - when using idf.py: idf.py -T xxxxx build
- #
- set(TEST_COMPONENTS "platform_config" "tools" "wifi-manager" CACHE STRING "List of components to test")
- # manually add the console squeezelite component
- list(APPEND EXTRA_COMPONENT_DIRS ../components/platform_console/recovery )
- # Set the project name
- project(squeezelite-esp32-test-project)
- add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../protobuf ${CMAKE_CURRENT_BINARY_DIR}/protobuf)
- add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../spiffs_src ${CMAKE_CURRENT_BINARY_DIR}/spiffs)
- # get_target_property(BCA recovery.elf LINK_LIBRARIES)
- # list(REMOVE_ITEM BCA "idf::app_squeezelite" "idf::app_recovery" "-Wl,--Map=${BUILD_DIR}/recovery.map" "-Wl,--cref -Wl,--Map=${BUILD_DIR}/recovery.map")
- # set_target_properties(recovery.elf PROPERTIES LINK_LIBRARIES "${BCA};idf::app_recovery;-Wl,--Map=${BUILD_DIR}/recovery.map")
- # TODO: enable gcov. this was attempted, but caused some
- # tasks to crash with "Cache disabled but cached memory region accessed"
- # when SPIFFS was being used.
- #
- idf_create_coverage_report(${CMAKE_CURRENT_BINARY_DIR}/coverage_report)
- idf_clean_coverage_report(${CMAKE_CURRENT_BINARY_DIR}/coverage_report)
- # # This is the project CMakeLists.txt file for the test subproject
- # cmake_minimum_required(VERSION 3.5)
- # include($ENV{IDF_PATH}/tools/cmake/project.cmake)
- # # Include the components directory of the main application:
- # #
- # # Set the components to include the tests for.
- # # This can be overriden from CMake cache:
- # # - when invoking CMake directly: cmake -D TEST_COMPONENTS="xxxxx" ..
- # # - when using idf.py: idf.py -T xxxxx build
- # #
- # set(TEST_COMPONENTS "platform_console" CACHE STRING "List of components to test")
- # set(COMPONENTS main)
- # # Freertos is included via common components, however, currently only the mock component is compatible with linux
- # # target.
- # list(APPEND EXTRA_COMPONENT_DIRS "$ENV{IDF_PATH}/tools/mocks/freertos/")
- # list(APPEND EXTRA_COMPONENT_DIRS "$ENV{IDF_PATH}/tools/mocks/driver/")
- # list(APPEND EXTRA_COMPONENT_DIRS "$ENV{IDF_PATH}/tools/mocks/freertos/")
- # list(APPEND EXTRA_COMPONENT_DIRS "$ENV{IDF_PATH}/tools/mocks/spi_flash/")
- # list(APPEND EXTRA_COMPONENT_DIRS "$ENV{IDF_PATH}/components/unity/")
- # idf_build_set_property(COMPILE_DEFINITIONS "-DNO_DEBUG_STORAGE" APPEND)
- # # list(APPEND EXTRA_COMPONENT_DIRS "${PROJECT_SOURCE_DIR}/../components")
- # # list(APPEND EXTRA_COMPONENT_DIRS "${PROJECT_SOURCE_DIR}/../components/tools")
- # project(squeezelite_esp32_test)
- # # add_definitions(-include "${PROJECT_SOURCE_DIR}/../build/config/sdkconfig.h")
- # set_property(TARGET squeezelite_esp32_test.elf PROPERTY RECOVERY_PREFIX app_update )
- add_custom_command(
- OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/build/coverage.info"
- WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/build"
- COMMAND lcov --capture --directory . --output-file coverage.info
- COMMENT "Create coverage report"
- )
- add_custom_command(
- OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/build/coverage_report/"
- DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/build/coverage.info"
- WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/build"
- COMMAND genhtml coverage.info --output-directory coverage_report/
- COMMENT "Turn coverage report into html-based visualization"
- )
- add_custom_target(coverage
- WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/build"
- DEPENDS "coverage_report/"
- )
|