list(APPEND TARGET_ENTRYPOINT_NAME_LIST ${entrypoint_name})
endforeach()
-set(LIBC_TARGET)
-set(LIBC_COMPONENT)
set(LIBC_INSTALL_DEPENDS)
-set(LIBC_INSTALL_TARGET)
if(LLVM_LIBC_FULL_BUILD)
set(LIBC_INSTALL_DEPENDS "install-libc-static-archives;install-libc-headers")
if(NOT LIBC_TARGET_OS_IS_BAREMETAL)
# and install it as part of the libc installation.
list(APPEND LIBC_INSTALL_DEPENDS "libc-startup")
endif()
- if(LIBC_TARGET_ARCHITECTURE_IS_GPU)
- set(LIBC_ARCHIVE_NAME cgpu)
- else()
- set(LIBC_ARCHIVE_NAME c)
- endif()
else()
set(LIBC_INSTALL_DEPENDS install-libc-static-archives)
- set(LIBC_ARCHIVE_NAME llvmlibc)
endif()
add_subdirectory(include)
-add_entrypoint_library(
- libc
- DEPENDS
- ${TARGET_LLVMLIBC_ENTRYPOINTS}
-)
-set_target_properties(
- libc
- PROPERTIES
- ARCHIVE_OUTPUT_NAME ${LIBC_ARCHIVE_NAME}
-)
+set(libc_archive_targets "")
+set(libc_archive_names "")
+set(libc_archive_entrypoint_lists "")
+if(LLVM_LIBC_FULL_BUILD)
+ if(LIBC_TARGET_ARCHITECTURE_IS_GPU)
+ list(APPEND libc_archive_names cgpu mgpu)
+ else()
+ list(APPEND libc_archive_names c m)
+ endif()
+ list(APPEND libc_archive_targets libc libm)
+ list(APPEND libc_archive_entrypoint_lists
+ TARGET_LIBC_ENTRYPOINTS TARGET_LIBM_ENTRYPOINTS)
+else()
+ list(APPEND libc_archive_names llvmlibc)
+ list(APPEND libc_archive_targets libc)
+ list(APPEND libc_archive_entrypoint_lists TARGET_LLVMLIBC_ENTRYPOINTS)
+endif()
+
+set(added_archive_targets "")
+foreach(archive IN ZIP_LISTS
+ libc_archive_names libc_archive_targets libc_archive_entrypoint_lists)
+ if(NOT ${archive_2})
+ # If an entrypoint list is missing, then skip adding targets for it.
+ continue()
+ endif()
+ add_entrypoint_library(
+ ${archive_1}
+ DEPENDS
+ ${${archive_2}}
+ )
+ set_target_properties(
+ ${archive_1}
+ PROPERTIES
+ ARCHIVE_OUTPUT_NAME ${archive_0}
+ )
+ list(APPEND added_archive_targets ${archive_1})
+endforeach()
if(LIBC_TARGET_TRIPLE)
set(LIBC_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LIBC_TARGET_TRIPLE})
endif()
install(
- TARGETS libc
+ TARGETS ${added_archive_targets}
ARCHIVE DESTINATION ${LIBC_INSTALL_LIBRARY_DIR}
COMPONENT libc-static-archives
)
add_llvm_install_targets(
install-libc-static-archives
- DEPENDS libc
+ DEPENDS ${added_archive_targets}
COMPONENT libc-static-archives
)