xlsw_3dp_ultrasonic_300K/sdk/CMakeLists.txt
2024-09-23 18:46:32 +08:00

50 lines
1.5 KiB
CMake

cmake_minimum_required(VERSION 3.10)
set(CMSIS_PATH ${CMAKE_CURRENT_LIST_DIR}/CMSIS)
set(PERIPHERAL_PATH ${CMAKE_CURRENT_LIST_DIR}/GD32E23x_standard_peripheral)
# Peripheral Driver
file(GLOB PERIPHERAL_SRCS ${PERIPHERAL_PATH}/src/*.c)
# CMSIS
set(TARGET_C_SOURCES
${CMSIS_PATH}/src/system_gd32e23x.c
${CMSIS_PATH}/src/syscalls.c
${PERIPHERAL_SRCS}
)
set(TARGET_C_INCLUDES
${CMSIS_PATH}/inc
${PERIPHERAL_PATH}/inc
)
# Shared library and linker script search paths
set(TARGET_LIB_DIRECTORIES
${PERIPHERAL_PATH}/inc
)
if (NOT TARGET_STARTUP_ASM)
set(TARGET_STARTUP_ASM ${CMSIS_PATH}/Startup/startup_gd32e23x.S)
endif ()
message(STATUS "Use startup asm: " ${TARGET_STARTUP_ASM})
if (NOT TARGET_LD_SCRIPT)
message(FATAL_ERROR "Must set TARGET_LD_SCRIPT to locate ld script")
endif ()
message(STATUS "Use LD script: " ${TARGET_LD_SCRIPT})
add_library(GD32E23X_SDK STATIC ${TARGET_C_SOURCES} ${TARGET_STARTUP_ASM})
# Shared sources, includes and definitions
target_compile_definitions(GD32E23X_SDK PUBLIC ${TARGET_C_DEFINES})
target_include_directories(GD32E23X_SDK
PUBLIC ${TARGET_C_INCLUDES}
INTERFACE ${TARGET_C_INCLUDES}
)
target_link_directories(GD32E23X_SDK PUBLIC ${TARGET_LIB_DIRECTORIES})
target_link_libraries(GD32E23X_SDK PUBLIC "c" "m" "nosys")
target_link_options(GD32E23X_SDK
PUBLIC "-T${TARGET_LD_SCRIPT}"
PUBLIC "-Wl,-Map=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_PROJECT_NAME}.map,--cref"
)