Firmwares/hello-world/CMakeLists.txt

66 lines
1.4 KiB
CMake

cmake_minimum_required(VERSION 3.12)
project(hello-world C)
# Set default board to iss if not specified
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
hello.c
)
message(STATUS "Building for board: ${BOARD}")
message(STATUS "liu:${PROJECT_NAME} ")
message(STATUS "Using board-specific files from: ${BSP_BASE}/env/${BOARD}")
# Create executable with all objects
add_executable(${PROJECT_NAME}
${SOURCES}
${BSP_OBJECTS}
)
# Link with board library
target_link_libraries(${PROJECT_NAME} PRIVATE
${LIBWRAP_OBJECTS}
${ENV_OBJECTS}
#$<TARGET_OBJECTS:env_entry>
#$<TARGET_OBJECTS:env_start>
)
# Include directories
target_include_directories(${PROJECT_NAME} PRIVATE
${BSP_BASE}/include
${BSP_BASE}/drivers
${BSP_BASE}/env
${BSP_BASE}/env/${BOARD}
${BSP_BASE}/libwrap
)
# Add compile definitions
target_compile_definitions(${PROJECT_NAME} PRIVATE
BOARD_${BOARD}
)
# link global_compile_options to this target
target_link_libraries(${PROJECT_NAME} PRIVATE global_compile_options)
# Set linker options
target_link_options(${PROJECT_NAME} PRIVATE
-T${BSP_BASE}/env/${BOARD}/link.ld
-nostartfiles
-Wl,--gc-sections
)
# Install target
install(TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION bin
)