first version of working cmake

This commit is contained in:
2024-12-20 14:33:57 +01:00
parent 90c45d7c3c
commit fddf608418
3 changed files with 42 additions and 30 deletions

View File

@ -6,9 +6,6 @@ if(NOT DEFINED BOARD)
set(BOARD "iss" CACHE STRING "Target board")
endif()
#set(BSP_BASE "${CMAKE_CURRENT_SOURCE_DIR}/../bare-metal-bsp")
# Source files
set(SOURCES
@ -21,19 +18,19 @@ message(STATUS "Using board-specific files from: ${BSP_BASE}/env/${BOARD}")
# Create executable with all objects
add_executable(${PROJECT_NAME}
${SOURCES}
${BSP_OBJECTS}
${SOURCES}
)
set_target_properties(${PROJECT_NAME} PROPERTIES SUFFIX ".elf")
# Link with board library
target_link_libraries(${PROJECT_NAME} PRIVATE
${LIBWRAP_OBJECTS}
${ENV_OBJECTS}
#$<TARGET_OBJECTS:env_entry>
#$<TARGET_OBJECTS:env_start>
)
#target_link_libraries(${PROJECT_NAME} PRIVATE
# libwrap
# ${BOARD}
# $<TARGET_OBJECTS:asm_obj>
# #$<TARGET_OBJECTS:env_start>
# )
# Include directories
target_include_directories(${PROJECT_NAME} PRIVATE
@ -49,14 +46,27 @@ target_compile_definitions(${PROJECT_NAME} PRIVATE
BOARD_${BOARD}
)
# link global_compile_options to this target
target_link_libraries(${PROJECT_NAME} PRIVATE global_compile_options)
# link global_compile_options to this target ????
#target_link_libraries(${PROJECT_NAME} PRIVATE global_compile_options)
get_target_property(WRAP_LIBRARY_PATH libwrap ARCHIVE_OUTPUT_DIRECTORY)
get_target_property(BOARDLIBRARY_PATH ${BOARD} ARCHIVE_OUTPUT_DIRECTORY)
## TODDO ???
set(ASM_OBJ_LIB "${BOARDLIBRARY_PATH}/CMakeFiles/asm_obj.dir")
message(STATUS "in hello_world WRAP_LIBRARY_PATH : ${WRAP_LIBRARY_PATH}, BOARDLIBRARY_PATH : ${BOARDLIBRARY_PATH} ASM_OBJ_LIB: ${ASM_OBJ_LIB} ")
# Set linker options
target_link_options(${PROJECT_NAME} PRIVATE
-T${BSP_BASE}/env/${BOARD}/link.ld
-nostartfiles
-Wl,--gc-sections
--verbose
-L${ASM_OBJ_LIB}
-L${WRAP_LIBRARY_PATH}
-L${BOARDLIBRARY_PATH}
${ASM_OBJ_LIB}/start.S.o
${ASM_OBJ_LIB}/entry.S.o
-L/scratch/hongyu/workarea/Firmwares/build/bare-metal-bsp/env/CMakeFiles/asm_obj.dir
-g -Wl,--wrap=printf -march=rv32imc -mabi=ilp32 -L../bare-metal-bsp/env/ -Wl,--wrap=malloc -Wl,--wrap=open -Wl,--wrap=lseek -Wl,--wrap=_lseek -Wl,--wrap=read -Wl,--wrap=_read -Wl,--wrap=write -Wl,--wrap=_write -Wl,--wrap=fstat -Wl,--wrap=_fstat -Wl,--wrap=stat -Wl,--wrap=close -Wl,--wrap=_close -Wl,--wrap=link -Wl,--wrap=unlink -Wl,--wrap=execve -Wl,--wrap=fork -Wl,--wrap=getpid -Wl,--wrap=kill -Wl,--wrap=wait -Wl,--wrap=isatty -Wl,--wrap=times -Wl,--wrap=sbrk -Wl,--wrap=_sbrk -Wl,--wrap=exit -Wl,--wrap=_exit -Wl,--wrap=puts -Wl,--wrap=_puts -Wl,--wrap=printf -Wl,--wrap=sprintf -L. -Wl,--start-group -llibwrap -liss -lc -Wl,--end-group -T /scratch/hongyu/workarea/Firmwares/bare-metal-bsp/env/iss/link.lds -Wl,--no-warn-rwx-segments -Wl,-Map=hello.map -nostartfiles -o hello.elf
)
# Install target