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)