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

41 lines
1.3 KiB
CMake
Executable File

cmake_minimum_required(VERSION 3.23)
set(CMAKE_C_COMPILER_WORKS 1)
set(CMAKE_CXX_COMPILER_WORKS 1)
project(example_i2c LANGUAGES C CXX ASM)
set(EXAMPLE_NAME "cam_i2c")
set(CMAKE_EXPORT_COMPILE_COMMANDS on) # for clangd
### set includes and library
set(Stm32U5Lib_DIR ../../../)
find_package(Stm32U5Lib REQUIRED)
include_directories(../)
file(GLOB_RECURSE SOURCES
./ex_i2c.cpp
../custom_prephrals.cpp
../../../startup/startup_stm32u575zitxq.s
)
#add_executable(${EXAMPLE_NAME}.elf ${SOURCES} ${LINKER_SCRIPT} ${LIB_BIN})
# if LIB_SOURCES is not empty, then add it to the target
if(NOT LIB_SOURCES)
message(STATUS "LIB_SOURCES is empty")
add_executable(${EXAMPLE_NAME}.elf ${SOURCES} ${LINKER_SCRIPT})
# add the library to the target
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(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}")