41 lines
1.3 KiB
CMake
Executable File
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}")
|
|
|