Files
mkrtos-real/mkrtos_user/server/init/CMakeLists.txt

74 lines
2.1 KiB
CMake
Raw Normal View History

2023-08-20 20:52:23 +08:00
cmake_minimum_required(VERSION 3.13)
2025-02-25 13:48:10 +08:00
file(GLOB deps src/*.c src/*.S src/test/*.c src/nsfs/ns.c src/nsfs/nsfs.c)
2024-07-31 23:27:19 +08:00
file(GLOB arch_src src/test/${ARCH_NAME}/*.c src/test/${ARCH_NAME}/*.S)
2023-08-20 20:52:23 +08:00
if (NOT $ENV{MKRTOS_TEST_MODE} STREQUAL "normal")
message(STATUS "MKRTOS_TEST_MODE is $ENV{MKRTOS_TEST_MODE}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DMKRTOS_TEST_MODE" )
endif()
2023-08-20 20:52:23 +08:00
add_executable(init.elf
${deps}
2024-07-31 23:27:19 +08:00
${arch_src}
2024-04-04 16:51:29 +00:00
${START_SRC_INIT}
2023-08-20 20:52:23 +08:00
)
target_link_libraries(init.elf
PUBLIC
2024-04-04 16:51:29 +00:00
-Bstatic
${LIBC_NAME}
2024-04-10 17:08:21 +00:00
${START_INIT_LIB}
2023-11-20 18:12:37 +08:00
--whole-archive
2024-04-04 16:51:29 +00:00
libc_be
2023-08-23 00:42:36 +08:00
sys
sys_util
2023-09-24 01:26:07 +08:00
sys_svr
2023-08-30 00:36:52 +08:00
cpio
2023-12-01 22:19:16 +08:00
util
2024-08-27 23:02:54 +08:00
cutest
2023-11-20 18:12:37 +08:00
--no-whole-archive
2025-01-21 16:20:51 +08:00
appfs_tiny
2023-08-23 00:42:36 +08:00
${GCC_LIB_PATH}/libgcc.a
2023-08-20 20:52:23 +08:00
)
2023-08-23 00:42:36 +08:00
target_include_directories(
init.elf
PUBLIC
${CMAKE_SOURCE_DIR}/mkrtos_user/lib/sys/inc
${CMAKE_SOURCE_DIR}/mkrtos_user/lib/sys_util/inc
2023-09-24 01:26:07 +08:00
${CMAKE_SOURCE_DIR}/mkrtos_user/lib/sys_svr/inc
2023-08-30 00:36:52 +08:00
${CMAKE_SOURCE_DIR}/mkrtos_user/lib/cpio
2024-08-27 23:02:54 +08:00
${CMAKE_SOURCE_DIR}/mkrtos_user/lib/cutest
2023-08-20 20:52:23 +08:00
2023-12-03 17:54:26 +08:00
${CMAKE_SOURCE_DIR}/mkrtos_user/server/init/src
2023-08-23 00:42:36 +08:00
)
set_target_properties(init.elf PROPERTIES LINK_FLAGS
2024-04-04 16:51:29 +00:00
"-T ${CMAKE_CURRENT_LIST_DIR}/${ARCH_NAME}/link.lds ${CORTEX_M_LINK_FLAGS} --gc-section -no-dynamic-linker "
2023-09-22 21:56:15 +08:00
#--no-warn-rwx-segments
2023-08-23 00:42:36 +08:00
)
#-T ${CMAKE_CURRENT_LIST_DIR}/link.lds
2023-08-20 20:52:23 +08:00
add_custom_target(
init_dump ALL
2024-04-10 16:07:49 +08:00
COMMAND
${CMAKE_OBJDUMP} -s -S init.elf > ${CMAKE_SOURCE_DIR}/build/output/init.S
2024-04-10 15:55:07 +00:00
COMMAND
${CMAKE_OBJCOPY} -O binary -S init.elf init.bin
2023-08-20 20:52:23 +08:00
COMMAND
2023-08-23 00:42:36 +08:00
${CMAKE_SIZE} init.elf
COMMAND
${CMAKE_COMMAND} -E copy init.bin ${CMAKE_SOURCE_DIR}/build/output/cpio/init
2023-08-20 20:52:23 +08:00
COMMAND
2025-01-25 15:29:06 +08:00
${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_DIR}/board/${CONFIG_BOARD_NAME}/init.cfg ${CMAKE_SOURCE_DIR}/build/output/cpio/
COMMAND
${CMAKE_COMMAND} -E copy init.elf ${CMAKE_SOURCE_DIR}/build/output/init.elf
2023-08-20 20:52:23 +08:00
)
2024-04-10 15:55:07 +00:00
if ((DEFINED CONFIG_ELF_LAUNCH) AND (CONFIG_ELF_LAUNCH STREQUAL "y"))
add_custom_target(
init_dump_elf ALL
COMMAND
2024-04-10 17:08:21 +00:00
cp init.elf ${CMAKE_SOURCE_DIR}/build/output/cpio/init
2024-04-10 15:55:07 +00:00
)
add_dependencies(init_dump_elf init_dump)
endif()
2023-08-20 20:52:23 +08:00
add_dependencies(init_dump init.elf)
2025-01-21 16:20:51 +08:00
add_dependencies(init.elf libc_be util appfs_tiny)