| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- 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 lora_bl)
- # Enable compile command to ease indexing with e.g. clangd
- set(CMAKE_EXPORT_COMPILE_COMMANDS TRUE)
- # Core project settings
- project(${CMAKE_PROJECT_NAME})
- message("Build type: " ${CMAKE_BUILD_TYPE})
- # Enable CMake support for ASM and C languages
- enable_language(C ASM)
- # Create an executable object type
- add_executable(${CMAKE_PROJECT_NAME}
- Core/Src/E104-BT5005A.c
- Core/Inc/E104-BT5005A.h
- Core/Src/E52.c
- Core/Inc/E52.h
- Core/Src/RTC_SLEEP.c
- Core/Inc/RTC_SLEEP.h
- Core/Src/ring_buffer.c
- Core/Inc/ring_buffer.h
- Core/Src/application.c
- Core/Inc/application.h
- Core/Src/Global.c
- Core/Inc/Global.h
- )
- # 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
- )
- # Add include paths
- target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE
- # Add user defined include paths
- )
- # Add project symbols (macros)
- target_compile_definitions(${CMAKE_PROJECT_NAME} PRIVATE
- # Add user defined symbols
- )
- # Remove wrong libob.a library dependency when using cpp files
- list(REMOVE_ITEM CMAKE_C_IMPLICIT_LINK_LIBRARIES ob)
- # Add linked libraries
- target_link_libraries(${CMAKE_PROJECT_NAME}
- stm32cubemx
- # Add user defined libraries
- )
- # 新增:生成HEX文件的配置
- # 获取objcopy工具路径
- find_program(OBJCOPY arm-none-eabi-objcopy)
- if(NOT OBJCOPY)
- message(FATAL_ERROR "arm-none-eabi-objcopy not found. Please check your toolchain installation.")
- endif()
- # 定义HEX文件输出路径和名称
- set(HEX_FILE ${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}.hex)
- # 添加自定义命令,在编译完成后生成HEX文件
- add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD
- COMMAND ${OBJCOPY} -O ihex $<TARGET_FILE:${CMAKE_PROJECT_NAME}> ${HEX_FILE}
- COMMENT "Generating HEX file: ${HEX_FILE}"
- VERBATIM
- )
- # 可选:添加自定义目标,允许单独生成HEX文件
- add_custom_target(hex ALL DEPENDS ${HEX_FILE})
|