Compare commits

...

1 Commits

View File

@ -1,4 +1,6 @@
cmake_minimum_required(VERSION 3.21) cmake_minimum_required(VERSION 3.21)
include(CheckLinkerFlag)
project(mnrs-bsp LANGUAGES ASM C) project(mnrs-bsp LANGUAGES ASM C)
set(LINKER_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/env/${BOARD}/link.lds" set(LINKER_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/env/${BOARD}/link.lds"
CACHE FILEPATH "Linker script to use for BSP linking") CACHE FILEPATH "Linker script to use for BSP linking")
@ -30,7 +32,13 @@ add_subdirectory(libwrap)
add_library(bsp STATIC env/${BOARD}/init.c) add_library(bsp STATIC env/${BOARD}/init.c)
target_link_libraries(bsp PUBLIC startup wrap) target_link_libraries(bsp PUBLIC startup wrap)
target_include_directories(bsp PUBLIC env/${BOARD}) target_include_directories(bsp PUBLIC env/${BOARD})
target_link_options(bsp INTERFACE LINKER:--no-warn-rwx-segments -nostartfiles -T ${LINKER_SCRIPT})
check_linker_flag(C "LINKER:--no-warn-rwx-segments" HAS_NO_WARN_RWX_SEGMENTS)
if(HAS_NO_WARN_RWX_SEGMENTS)
target_link_options(bsp INTERFACE LINKER:--no-warn-rwx-segments)
endif()
target_link_options(bsp INTERFACE LINKER: -nostartfiles -T ${LINKER_SCRIPT})
if(SEMIHOSTING) if(SEMIHOSTING)
target_include_directories(bsp INTERFACE include) target_include_directories(bsp INTERFACE include)