This repository has been archived on 2024-05-28. You can view files and clone it, but cannot push or open issues or pull requests.
2023-11-14 16:25:09 -05:00

56 lines
1.9 KiB
CMake

cmake_minimum_required(VERSION 3.26)
project(STM32U5 C CXX ASM)
set(EXAMPLE_NAME "stimulator")
set(CMAKE_EXPORT_COMPILE_COMMANDS on) # for clangd
set(CMAKE_SYSTEM_PROCESSOR ARM)
set(CMAKE_SYSTEM_NAME Generic)
# set(CMAKE_C_COMPILER ${COMPILE_PREFIX}arm-none-eabi-gcc)
# set(CMAKE_CXX_COMPILER ${COMPILE_PREFIX}arm-none-eabi-g++)
# set(CMAKE_ASM_COMPILER ${COMPILE_PREFIX}arm-none-eabi-gcc)
# set(CMAKE_AR ${COMPILE_PREFIX}arm-none-eabi-ar)
# set(CMAKE_OBJCOPY ${COMPILE_PREFIX}arm-none-eabi-objcopy)
# set(CMAKE_OBJDUMP ${COMPILE_PREFIX}arm-none-eabi-objdump)
# set(SIZE ${COMPILE_PREFIX}arm-none-eabi-size)
set(CMAKE_C_COMPILER_WORKS 1)
set(CMAKE_CXX_COMPILER_WORKS 1)
### set includes and library
set(Stm32U5Lib_DIR ../../)
find_package(Stm32U5Lib REQUIRED)
file(GLOB_RECURSE SOURCES
${CMAKE_SOURCE_DIR}/main.cpp
${CMAKE_SOURCE_DIR}/custom_prephrals.cpp
# ../../../startup/startup_stm32u575zitxq.s
${CMAKE_SOURCE_DIR}/startup_stm32u575zitxq.s
${CMAKE_SOURCE_DIR}/syscalls.c
)
# if(NOT LIB_SOURCES)
# add_executable(${EXAMPLE_NAME}.elf ${SOURCES} ${LINKER_SCRIPT})
# target_link_libraries(${EXAMPLE_NAME}.elf ${LIB_BIN})
# else()
# message(STATUS "LIB_SOURCES is not empty")
# add_executable(${EXAMPLE_NAME}.elf ${SOURCES} ${LINKER_SCRIPT} ${LIB_SOURCES})
# endif()
set(LIB_BIN ${CMAKE_SOURCE_DIR}/libSTM32U5.a)
message (STATUS "LIB_BIN: " ${LIB_BIN})
message (STATUS "EXAMPLE_NAME: " ${EXAMPLE_NAME})
add_executable(${EXAMPLE_NAME}.elf ${SOURCES} ${LINKER_SCRIPT})
target_link_libraries(${EXAMPLE_NAME}.elf ${LIB_BIN})
set(HEX_FILE ${EXAMPLE_NAME}.hex)
set(BIN_FILE ${EXAMPLE_NAME}.bin)
add_custom_command(TARGET ${EXAMPLE_NAME}.elf POST_BUILD
COMMAND ${CMAKE_OBJCOPY} -Oihex $<TARGET_FILE:${EXAMPLE_NAME}.elf> ${HEX_FILE}
COMMAND ${CMAKE_OBJCOPY} -Obinary $<TARGET_FILE:${EXAMPLE_NAME}.elf> ${BIN_FILE}
COMMENT "Building ${HEX_FILE}
Building ${BIN_FILE}")