cmake_minimum_required(VERSION 3.3) project(dncm C) enable_language(ASM) set(PROJECT_NAME "dncm") set(PROJECT_BRIEF "DNCM firmware") set(STM32_CHIP STM32F407VG) if (CMAKE_BUILD_TYPE STREQUAL "Debug") include(CTest) endif() include("common/cmake/CMakeLists.txt") find_package(ChibiOS 16 COMPONENTS chprintf rt hal pal can gpt serial wdg shell sdc i2c REQUIRED) find_package(Libdi COMPONENTS drv_hl854x can can_log log REQUIRED) if (CMAKE_BUILD_TYPE STREQUAL "Debug") set (Libdi_fw_COMPONENTS_DEBUG exception semihosting) endif () find_package(Libdi_fw COMPONENTS i2c heartbeat assert board time can uid drv_stm32fx_flash periodic syshalt serial ${Libdi_fw_COMPONENTS_DEBUG} REQUIRED) set(STM32_LINKER_SCRIPT "STM32F407xG_eeprom.ld") include_directories( ${Libdi_INCLUDE_DIRS} ${Libdi_fw_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/fatfs/src "${PROJECT_SOURCE_DIR}/include" "${CMAKE_BINARY_DIR}/include" ) aux_source_directory(3rdparty/fatfs/src FATFS_SOURCES) aux_source_directory(3rdparty/fatfs/src/bindings FATFS_SOURCES) set_source_files_properties(${FATFS_SOURCES} PROPERTIES COMPILE_FLAGS "-Wno-conversion") include_directories(SYSTEM ${ChibiOS_INCLUDE_DIRS}) aux_source_directory(src PROJECT_SOURCES) aux_source_directory(src/reqrep PROJECT_SOURCES) aux_source_directory(src/can PROJECT_SOURCES) aux_source_directory(src/can/dev PROJECT_SOURCES) aux_source_directory(src/rpc PROJECT_SOURCES) aux_source_directory(src/tcp PROJECT_SOURCES) aux_source_directory(src/modem PROJECT_SOURCES) aux_source_directory(src/modem/fsm PROJECT_SOURCES) if (BUILD_TESTING) enable_linting() endif() add_definitions(-DDI_CAN_CFG_NODEID=1 -DCORTEX_USE_FPU=TRUE -D__chibios__=1 -DTHUMB_NO_INTERWORKING -DTHUMB_PRESENT) if (CMAKE_BUILD_TYPE STREQUAL "Debug") add_definitions(-DDNCM_LOG_FACILITY=DNCM_LOG_FACILITY_SERIAL_PORT) add_definitions(-DDI_LOG_ENABLE_FROM_DEBUG=TRUE) add_definitions(-DDI_CAN_CFG_DBG_STAT=TRUE) add_definitions(-DDI_STDIO_SUPPORT_FLOAT=TRUE) else() add_definitions(-DDNCM_LOG_FACILITY=DNCM_LOG_FACILITY_SDCARD) add_definitions(-DDI_LOG_ENABLE_FROM_WARN=TRUE) add_definitions(-DDI_CAN_CFG_DBG_STAT=FALSE) endif() set_source_files_properties(${PROJECT_SOURCES} PROPERTIES COMPILE_FLAGS -DDI_LOG_COMPONENT=DI_LOG_COMPONENT_FW_DNCM) add_fw_executable(${CMAKE_PROJECT_NAME} "${PROJECT_SOURCES};${FATFS_SOURCES};${ChibiOS_SOURCES};${Libdi_SOURCES};${Libdi_fw_SOURCES}") add_subdirectory(tests)