72 lines
2.4 KiB
CMake
72 lines
2.4 KiB
CMake
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)
|