bond/mk/kern.cmake

41 lines
995 B
CMake

include(${MK}/common.cmake)
#
# Standard rules for kernel
#
# Process AS_SRC and CC_SRC and add them to "OBJS"
#
FOREACH(f IN LISTS AS_SRC)
PP_GEN(${CMAKE_CURRENT_SOURCE_DIR}/${f} AS_TMPSRC)
endforeach(f)
FOREACH(f IN LISTS AS_TMPSRC)
AS_GEN(${f} M_OBJS)
endforeach(f)
FOREACH(f IN LISTS CC_SRC)
CC_GEN(${CMAKE_CURRENT_SOURCE_DIR}/${f} M_OBJS)
endforeach(f)
set(SUBTARGET ${CMAKE_CURRENT_BINARY_DIR}/${SUBMODULE}.o)
# Rules for generating the target
add_custom_command(
OUTPUT ${SUBTARGET}
DEPENDS ${M_OBJS}
COMMAND ${CC} ${LD_FLAGS} -r -o ${SUBTARGET} ${M_OBJS})
add_custom_target(${SUBMODULE}
DEPENDS ${SUBTARGET})
set(OBJS_${SUBMODULE} ${SUBTARGET} PARENT_SCOPE)
set(TARGET_${SUBMODULE} ${SUBMODULE} PARENT_SCOPE)
# hack for clion not parsing custom targets
set(CUR_CC_SRC "")
FOREACH(f IN LISTS CC_SRC)
set(CUR_CC_SRC ${CUR_CC_SRC} ${CMAKE_CURRENT_SOURCE_DIR}/${f})
endforeach(f)
set(G_CC_SRC ${G_CC_SRC} ${CUR_CC_SRC} PARENT_SCOPE)