restructured build system support
This commit is contained in:
62
cmake/HardwareOsPostConfig.cmake
Normal file
62
cmake/HardwareOsPostConfig.cmake
Normal file
@ -0,0 +1,62 @@
|
||||
function(post_source_hw_os_config)
|
||||
|
||||
if(LINK_LWIP)
|
||||
message(STATUS "Linking against ${LIB_LWIP_NAME} lwIP library")
|
||||
if(LIB_LWIP_NAME)
|
||||
target_link_libraries(${TARGET_NAME} PUBLIC
|
||||
${LIB_LWIP_NAME}
|
||||
)
|
||||
else()
|
||||
message(WARNING "lwIP library name not set!")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(LINK_HAL)
|
||||
message(STATUS "Linking against ${LIB_HAL_NAME} HAL library")
|
||||
if(LIB_HAL_NAME)
|
||||
target_link_libraries(${TARGET_NAME} PUBLIC
|
||||
${LIB_HAL_NAME}
|
||||
)
|
||||
else()
|
||||
message(WARNING "HAL library name not set!")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(LINKER_SCRIPT)
|
||||
target_link_options(${TARGET_NAME} PRIVATE
|
||||
-T${LINKER_SCRIPT}
|
||||
)
|
||||
endif()
|
||||
|
||||
set(C_FLAGS "" CACHE INTERNAL "C flags")
|
||||
|
||||
set(C_DEFS ""
|
||||
CACHE INTERNAL
|
||||
"C Defines"
|
||||
)
|
||||
|
||||
set(CXX_FLAGS ${C_FLAGS})
|
||||
set(CXX_DEFS ${C_DEFS})
|
||||
|
||||
if(CMAKE_VERBOSE)
|
||||
message(STATUS "C Flags: ${C_FLAGS}")
|
||||
message(STATUS "CXX Flags: ${CXX_FLAGS}")
|
||||
message(STATUS "C Defs: ${C_DEFS}")
|
||||
message(STATUS "CXX Defs: ${CXX_DEFS}")
|
||||
endif()
|
||||
|
||||
# Generator expression. Can be used to set different C, CXX and ASM flags.
|
||||
target_compile_options(${TARGET_NAME} PRIVATE
|
||||
$<$<COMPILE_LANGUAGE:C>:${C_DEFS} ${C_FLAGS}>
|
||||
$<$<COMPILE_LANGUAGE:CXX>:${CXX_DEFS} ${CXX_FLAGS}>
|
||||
$<$<COMPILE_LANGUAGE:ASM>:${ASM_FLAGS}>
|
||||
)
|
||||
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
POST_BUILD
|
||||
COMMAND echo Generating binary file ${CMAKE_PROJECT_NAME}.bin..
|
||||
COMMAND ${CMAKE_OBJCOPY} -O binary ${TARGET_NAME} ${TARGET_NAME}.bin
|
||||
)
|
||||
|
||||
endfunction()
|
Reference in New Issue
Block a user