123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- cmake_minimum_required(VERSION 3.22)
- #
- # This file is generated only once,
- # and is not re-generated if converter is called multiple times.
- #
- # User is free to modify the file as much as necessary
- #
- # Setup compiler settings
- set(CMAKE_C_STANDARD 11)
- set(CMAKE_C_STANDARD_REQUIRED ON)
- set(CMAKE_C_EXTENSIONS ON)
- # Define the build type
- if(NOT CMAKE_BUILD_TYPE)
- set(CMAKE_BUILD_TYPE "Debug")
- endif()
- # Set the project name
- set(CMAKE_PROJECT_NAME msts)
- # Include toolchain file
- include("cmake/gcc-arm-none-eabi.cmake")
- # Enable compile command to ease indexing with e.g. clangd
- set(CMAKE_EXPORT_COMPILE_COMMANDS TRUE)
- # Enable CMake support for ASM and C languages
- enable_language(C ASM)
- # Core project settings
- project(${CMAKE_PROJECT_NAME})
- message("Build type: " ${CMAKE_BUILD_TYPE})
- # Create an executable object type
- add_executable(${CMAKE_PROJECT_NAME})
- # Add STM32CubeMX generated sources
- add_subdirectory(cmake/stm32cubemx)
- # Link directories setup
- target_link_directories(${CMAKE_PROJECT_NAME} PRIVATE
- # Add user defined library search paths
- )
- # Add sources to executable
- target_sources(${CMAKE_PROJECT_NAME} PRIVATE
- # Add user sources here
- App/BootLoader/Src/boot.c
- App/BootLoader/Src/flash.c
- App/BootLoader/Src/iap.c
- App/Can/Src/can_task.c
- App/Can/Src/can_interface.c
- App/Common/Src/hal_math.c
- App/Task/Src/schedule.c
- App/Task/Src/task.c
- App/Uart/Src/uart_interface.c
- App/Uart/Src/uart_table.c
- App/Uart/Src/uart_task.c
- )
- # Add include paths
- target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE
- # Add user defined include paths
- App/BootLoader/Inc
- App/Common/Inc
- App/Can/Inc
- App/Task/Inc
- App/Uart/Inc
- )
- # Add project symbols (macros)
- target_compile_definitions(${CMAKE_PROJECT_NAME} PRIVATE
- # Add user defined symbols
- )
- # Add linked libraries
- target_link_libraries(${CMAKE_PROJECT_NAME}
- stm32cubemx
- # Add user defined libraries
- )
- # post-build
- add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD
- COMMAND ${CMAKE_SIZE} $<TARGET_FILE:${CMAKE_PROJECT_NAME}>
- )
- # 生成 hex 文件
- add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD
- COMMAND ${CMAKE_OBJCOPY} -O ihex $<TARGET_FILE:${CMAKE_PROJECT_NAME}> ${CMAKE_PROJECT_NAME}.hex
- )
- # 生成 bin 文件
- add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD
- COMMAND ${CMAKE_OBJCOPY} -O binary $<TARGET_FILE:${CMAKE_PROJECT_NAME}> ${CMAKE_PROJECT_NAME}.bin
- )
|