Files
ThreadX4TGFS/port/moonlight/CMakeLists.txt

42 lines
993 B
CMake

cmake_minimum_required(VERSION 3.21)
project(moonlight LANGUAGES C)
set(MOONLIGHT_ROOT ${CMAKE_CURRENT_LIST_DIR})
set(MOONLIGHT_INC_DIR ${MOONLIGHT_ROOT}/inc)
set(MOONLIGHT_SRC_DIR ${MOONLIGHT_ROOT}/src)
set(MOONLIGHT_LDS_DIR ${MOONLIGHT_ROOT}/lds)
if(NOT DEFINED TARGET_MEM)
set(TARGET_MEM "ram" CACHE STRING "memory map to use")
endif()
if(NOT DEFINED MOONLIGHT_TRAP_SOURCE)
set(MOONLIGHT_TRAP_SOURCE ${MOONLIGHT_SRC_DIR}/trap_non_vectored.c)
endif()
add_library(moonlight STATIC
${MOONLIGHT_SRC_DIR}/board.c
${MOONLIGHT_SRC_DIR}/bootup.c
${MOONLIGHT_SRC_DIR}/exception.c
${MOONLIGHT_TRAP_SOURCE}
)
target_include_directories(moonlight PUBLIC ${MOONLIGHT_INC_DIR})
target_link_directories(moonlight INTERFACE ${MOONLIGHT_LDS_DIR})
target_compile_options(moonlight
PUBLIC
-ffreestanding
-fno-builtin
-fdata-sections
-ffunction-sections
)
target_link_options(moonlight
INTERFACE
-nostartfiles
-T ${MOONLIGHT_LDS_DIR}/${TARGET_MEM}.lds
-Wl,--gc-sections
)