1function(add_loader_object name) 2 cmake_parse_arguments( 3 "ADD_LOADER_OBJECT" 4 "" # No option arguments 5 "SRC" # Single value arguments 6 "DEPENDS;COMPILE_OPTIONS" # Multi value arguments 7 ${ARGN} 8 ) 9 add_object_library( 10 ${name}_object 11 SRCS ${ADD_LOADER_OBJECT_SRC} 12 DEPENDS ${ADD_LOADER_OBJECT_DEPENDS} 13 COMPILE_OPTIONS ${ADD_LOADER_OBJECT_COMPILE_OPTIONS} 14 ) 15 16 set(objfile ${LIBC_BUILD_DIR}/lib/${name}.o) 17 add_custom_command( 18 OUTPUT ${objfile} 19 COMMAND cp $<TARGET_OBJECTS:${name}_object> ${objfile} 20 DEPENDS $<TARGET_OBJECTS:${name}_object> 21 ) 22 add_custom_target( 23 ${name} 24 DEPENDS ${objfile} 25 ) 26 set_target_properties( 27 ${name} 28 PROPERTIES 29 "TARGET_TYPE" "LOADER_OBJECT" 30 "OBJECT_FILES" ${objfile} 31 ) 32endfunction() 33 34add_subdirectory(${LIBC_TARGET_MACHINE}) 35