diff --git a/libc/CMakeLists.txt b/libc/CMakeLists.txt index 3d77573661674..616beae13d9aa 100644 --- a/libc/CMakeLists.txt +++ b/libc/CMakeLists.txt @@ -225,6 +225,15 @@ else() set(LIBC_INSTALL_INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR}) endif() +if(LIBC_TARGET_TRIPLE) + set(LIBC_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LIBC_TARGET_TRIPLE}) +elseif(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT LIBC_GPU_BUILD) + set(LIBC_INSTALL_LIBRARY_DIR + lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}) +else() + set(LIBC_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}) +endif() + if(LIBC_TARGET_ARCHITECTURE_IS_GPU) include(prepare_libc_gpu_build) set(LIBC_ENABLE_UNITTESTS OFF) diff --git a/libc/lib/CMakeLists.txt b/libc/lib/CMakeLists.txt index af7ef2de93dd4..c1a804232c1f5 100644 --- a/libc/lib/CMakeLists.txt +++ b/libc/lib/CMakeLists.txt @@ -35,19 +35,13 @@ foreach(archive IN ZIP_LISTS ) if(LLVM_LIBC_FULL_BUILD) target_link_libraries(${archive_1} PUBLIC libc-headers) + if(TARGET libc-startup) + add_dependencies(${archive_1} libc-startup) + endif() endif() list(APPEND added_archive_targets ${archive_1}) endforeach() -if(LIBC_TARGET_TRIPLE) - set(LIBC_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LIBC_TARGET_TRIPLE}) -elseif(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT LIBC_GPU_BUILD) - set(LIBC_INSTALL_LIBRARY_DIR - lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}) -else() - set(LIBC_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}) -endif() - install( TARGETS ${added_archive_targets} ARCHIVE DESTINATION ${LIBC_INSTALL_LIBRARY_DIR} diff --git a/libc/startup/linux/CMakeLists.txt b/libc/startup/linux/CMakeLists.txt index 39bcca9cdba9f..a287bc4d633d4 100644 --- a/libc/startup/linux/CMakeLists.txt +++ b/libc/startup/linux/CMakeLists.txt @@ -131,7 +131,8 @@ foreach(target IN LISTS startup_components) set(fq_target_name libc.startup.linux.${target}) add_dependencies(libc-startup ${fq_target_name}) install(FILES $ - DESTINATION ${CMAKE_INSTALL_LIBDIR} + DESTINATION ${LIBC_INSTALL_LIBRARY_DIR} RENAME $ + EXCLUDE_FROM_ALL COMPONENT libc) endforeach()