45 lines
1.7 KiB
CMake
45 lines
1.7 KiB
CMake
|
|
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
|
|
|
project(boot C CXX ASM)
|
|
add_link_options(-specs=nano.specs -specs=nosys.specs)
|
|
add_compile_options(-specs=nano.specs -specs=nosys.specs)
|
|
# project settings
|
|
|
|
|
|
|
|
set(INCLUDE_DIR
|
|
Core/Inc
|
|
#/////////////////////////////////////////////USER CAN ADD INCLUDE_DIR HERE
|
|
App
|
|
loader
|
|
../ARMCM0_STM32G0
|
|
#/////////////////////////////////////////////
|
|
)
|
|
|
|
|
|
|
|
add_definitions(-DDEBUG -DUSE_FULL_LL_DRIVER -DUSE_HAL_DRIVER -DSTM32G070xx)
|
|
|
|
|
|
|
|
|
|
file(GLOB_RECURSE SOURCES "Core/*.*" "App/*.*" "loader/*.*" "../ARMCM0_STM32G0/*.*")
|
|
list(FILTER SOURCES EXCLUDE REGEX "IAR\\/.*.[c|h]$")
|
|
list(FILTER SOURCES EXCLUDE REGEX "Keil\\/.*.[c|h]$")
|
|
set(LINKER_SCRIPT ${CMAKE_SOURCE_DIR}/Boot/STM32G070CBTX_FLASH.ld)
|
|
add_executable(${PROJECT_NAME}.elf ${SOURCES} )
|
|
target_compile_options(${PROJECT_NAME}.elf PUBLIC $ENV{COMPILE_OPTIONS})
|
|
target_link_options(${PROJECT_NAME}.elf PUBLIC $ENV{LINK_OPTIONS})
|
|
set(HEX_FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.hex)
|
|
set(BIN_FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.bin)
|
|
target_include_directories(${PROJECT_NAME}.elf PRIVATE ${INCLUDE_DIR} )
|
|
target_link_libraries(${PROJECT_NAME}.elf PUBLIC $ENV{MCU_SERIES}_HAL_DRIVER CMSIS)
|
|
add_custom_command(TARGET ${PROJECT_NAME}.elf PRE_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/${MEM_MAP_FILE}" ${PROJECT_BINARY_DIR}/../${MEM_MAP_FILE}
|
|
)
|
|
add_custom_command(TARGET ${PROJECT_NAME}.elf POST_BUILD
|
|
COMMAND ${CMAKE_OBJCOPY} -Oihex $<TARGET_FILE:${PROJECT_NAME}.elf> ${HEX_FILE}
|
|
COMMAND ${CMAKE_OBJCOPY} -Obinary $<TARGET_FILE:${PROJECT_NAME}.elf> ${BIN_FILE}
|
|
COMMENT "Building ${HEX_FILE}
|
|
Building ${BIN_FILE}") |