Files
clang-p2996/libc/loader/linux/CMakeLists.txt
Siva Chandra Reddy 51b899c846 [libc] Extend add_object rule to handle helper object libraries.
The rule is now called add_object_library.

Reviewers: abrachet

Differential Revision: https://reviews.llvm.org/D76826
2020-03-28 00:07:46 -07:00

35 lines
836 B
CMake

function(add_loader_object name)
cmake_parse_arguments(
"ADD_LOADER_OBJECT"
"" # No option arguments
"SRC" # Single value arguments
"DEPENDS;COMPILE_OPTIONS" # Multi value arguments
${ARGN}
)
add_object_library(
${name}_object
SRCS ${ADD_LOADER_OBJECT_SRC}
DEPENDS ${ADD_LOADER_OBJECT_DEPENDS}
COMPILE_OPTIONS ${ADD_LOADER_OBJECT_COMPILE_OPTIONS}
)
set(objfile ${LIBC_BUILD_DIR}/lib/${name}.o)
add_custom_command(
OUTPUT ${objfile}
COMMAND cp $<TARGET_OBJECTS:${name}_object> ${objfile}
DEPENDS $<TARGET_OBJECTS:${name}_object>
)
add_custom_target(
${name}
DEPENDS ${objfile}
)
set_target_properties(
${name}
PROPERTIES
"TARGET_TYPE" "LOADER_OBJECT"
"OBJECT_FILES" ${objfile}
)
endfunction()
add_subdirectory(${LIBC_TARGET_MACHINE})