diff --git a/CMakeLists.txt b/CMakeLists.txt index 8b721fd..dabf26d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,7 @@ include(CheckLinkerFlag) project(mnrs-bsp LANGUAGES ASM C) set(LINKER_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/env/${BOARD}/link.lds" CACHE FILEPATH "Linker script to use for BSP linking") +get_filename_component(LINKER_SCRIPT_DIR "${LINKER_SCRIPT}" DIRECTORY) set(BSP_STARTUP "${CMAKE_CURRENT_SOURCE_DIR}/env/start.S" CACHE FILEPATH "Path to the BSP startup assembly file") set(BSP_TRAP_HANDLER "${CMAKE_CURRENT_SOURCE_DIR}/env/entry.S" @@ -38,7 +39,7 @@ 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}) +target_link_options(bsp INTERFACE LINKER: -nostartfiles -T ${LINKER_SCRIPT} -L${LINKER_SCRIPT_DIR}) if(SEMIHOSTING) target_include_directories(bsp INTERFACE include)