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.
stm32u5_cargo/stm32u5/CMakeLists.txt
2023-11-14 16:25:09 -05:00

56 lines
2.3 KiB
CMake

cmake_minimum_required(VERSION 3.24)
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_PROCESSOR ARM)
set(CMAKE_C_COMPILER_WORKS 1) # skip compiler test
set(CMAKE_CXX_COMPILER_WORKS 1)
project(STM32U5 C CXX ASM)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
add_definitions(-DFX_INCLUDE_USER_DEFINE_FILE) # this is for filex
include_directories(
${CMAKE_CURRENT_LIST_DIR}/includes
${CMAKE_CURRENT_LIST_DIR}/includes/u575xx
${CMAKE_CURRENT_LIST_DIR}/includes/lowlevel
${CMAKE_CURRENT_LIST_DIR}/CMSIS/Include
${CMAKE_CURRENT_LIST_DIR}/filex/common/inc
${CMAKE_CURRENT_LIST_DIR}/filex/common/
${CMAKE_CURRENT_LIST_DIR}/filex/ports/generic/inc
)
file(GLOB_RECURSE LIB_SOURCES
"${CMAKE_CURRENT_LIST_DIR}/src/*.c"
"${CMAKE_CURRENT_LIST_DIR}/src/*.cpp"
"${CMAKE_CURRENT_LIST_DIR}/filex/common/src/*.c"
"${CMAKE_CURRENT_LIST_DIR}/startup/startup_stm32u575zitxq.s"
)
message(STATUS "LIB_SOURCES: ${LIB_SOURCES}")
add_definitions(-DSTM32U575xx)
message(STATUS "CMAKE_CURRENT_LIST_DIR: ${CMAKE_CURRENT_LIST_DIR}")
#Uncomment for hardware floating point
# add_compile_definitions(ARM_MATH_CM4;ARM_MATH_MATRIX_CHECK;ARM_MATH_ROUNDING)
# add_compile_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16)
# add_compile_options(-mcpu=cortex-m33 -mthumb -mthumb-interwork)
# add_compile_options(-ffunction-sections -fdata-sections -fno-common -fmessage-length=0)
# Enable assembler files preprocessing
# add_compile_options($<$<COMPILE_LANGUAGE:ASM>:-x$<SEMICOLON>assembler-with-cpp>)
add_library(${PROJECT_NAME} STATIC ${LIB_SOURCES})
# copy files to output directory
# file(COPY ${CMAKE_CURRENT_LIST_DIR}/link_script DESTINATION ${CMAKE_BINARY_DIR})
# file(COPY ${CMAKE_CURRENT_LIST_DIR}/includes DESTINATION ${CMAKE_BINARY_DIR})
# file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMSIS DESTINATION ${CMAKE_BINARY_DIR})
# file(COPY ${CMAKE_CURRENT_LIST_DIR}/startup DESTINATION ${CMAKE_BINARY_DIR})
install(TARGETS ${PROJECT_NAME} DESTINATION .)
install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/includes DESTINATION .)
install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/CMSIS DESTINATION .)
install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/startup DESTINATION .)
install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/filex DESTINATION .)
install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/link_script DESTINATION .)