hydrotower-mainboard/CMakeLists.txt

56 lines
1.9 KiB
CMake

cmake_minimum_required(VERSION 3.10)
project(HydroTowerMainboard)
set(CMAKE_EXPORT_COMPILE_COMMANDS 1)
set(CMAKE_BUILD_TYPE "Release")
set(LD_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/samd21_flash.ld")
set(MCUTYPE "__SAMD21E17D__")
set(CMAKE_EXE_LINKER_FLAGS "-T${LD_SCRIPT} ${CMAKE_EXE_LINKER_FLAGS}")
add_executable(${PROJECT_NAME}.elf
# src/i2c/i2c.c
src/buffer/buffer.c
src/cc1101/cc1101.c
src/cobs/cobs.c
src/common/common.c
src/main.c src/spi/spi_master.c
src/packet/packet_handler.c
src/pwm/pwm.c
src/serial/serial.c
src/startup_samd21.c
src/switch/switch.c
thirdparty/segger_rtt/RTT/SEGGER_RTT.c
thirdparty/segger_rtt/RTT/SEGGER_RTT_printf.c
thirdparty/segger_rtt/Syscalls/SEGGER_RTT_Syscalls_GCC.c
)
target_include_directories(${PROJECT_NAME}.elf
PRIVATE
#${CMAKE_CURRENT_SOURCE_DIR}/src/i2c
${CMAKE_CURRENT_SOURCE_DIR}/hydrolink-headers/include
${CMAKE_CURRENT_SOURCE_DIR}/src/buffer
${CMAKE_CURRENT_SOURCE_DIR}/src/cc1101
${CMAKE_CURRENT_SOURCE_DIR}/src/cobs
${CMAKE_CURRENT_SOURCE_DIR}/src/common
${CMAKE_CURRENT_SOURCE_DIR}/src/defs
${CMAKE_CURRENT_SOURCE_DIR}/src/packet
${CMAKE_CURRENT_SOURCE_DIR}/src/pwm
${CMAKE_CURRENT_SOURCE_DIR}/src/serial
${CMAKE_CURRENT_SOURCE_DIR}/src/spi
${CMAKE_CURRENT_SOURCE_DIR}/src/switch
${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/segger_rtt/Config
${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/segger_rtt/RTT
${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/segger_rtt/Syscalls
)
add_compile_definitions(${MCUTYPE})
add_custom_target(${PROJECT_NAME}.bin
COMMAND ${CMAKE_OBJCOPY} -O binary ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.elf ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.bin
)
add_dependencies(${PROJECT_NAME}.bin ${PROJECT_NAME}.elf)
add_custom_target(upload
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/../jlink/JLinkExe -NoGui 1 -CommandFile ${CMAKE_CURRENT_SOURCE_DIR}/upload_release.jlink
)
add_dependencies(upload ${PROJECT_NAME}.bin)