set(MOONLIGHT_ROOT ${CMAKE_CURRENT_LIST_DIR}) set(THREADX4TGFS_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../..) set(MOONLIGHT_PLATFORM_SOURCES ${THREADX4TGFS_ROOT}/port/picolibc/port.c ${MOONLIGHT_ROOT}/bootup.c ${MOONLIGHT_ROOT}/board.c ${MOONLIGHT_ROOT}/trap_non_vectored.c ${MOONLIGHT_ROOT}/exception.c ${MOONLIGHT_ROOT}/vector_table.c) add_library(moonlight_platform_defaults INTERFACE) target_include_directories(moonlight_platform_defaults INTERFACE ${MOONLIGHT_ROOT} ${THREADX4TGFS_ROOT}/src) target_compile_options(moonlight_platform_defaults INTERFACE -ffreestanding -fno-builtin -fdata-sections -ffunction-sections) target_link_directories(moonlight_platform_defaults INTERFACE ${THREADX4TGFS_ROOT}/src) target_link_options(moonlight_platform_defaults INTERFACE -nostartfiles -nostdlib -T ${THREADX4TGFS_ROOT}/src/${TARGET_MEM}.lds -Wl,--gc-sections) if(NX_DEBUG) target_compile_definitions(moonlight_platform_defaults INTERFACE NX_DEBUG NX_DEBUG_PACKET) endif() add_library(moonlight_platform_common OBJECT ${MOONLIGHT_PLATFORM_SOURCES}) target_link_libraries(moonlight_platform_common PUBLIC moonlight_platform_defaults c threadx) add_library(moonlight_network_driver OBJECT ${MOONLIGHT_ROOT}/mnrs_network_driver.c) target_link_libraries(moonlight_network_driver PUBLIC moonlight_platform_defaults c threadx netxduo) function(target_add_moonlight_platform TARGET) target_link_libraries(${TARGET} PRIVATE moonlight_platform_common) endfunction() function(target_add_moonlight_network_driver TARGET) target_link_libraries(${TARGET} PRIVATE moonlight_network_driver) endfunction()