diff --git a/libc/CMakeLists.txt b/libc/CMakeLists.txt index 95c3b6c66b597..7054bfc5d1484 100644 --- a/libc/CMakeLists.txt +++ b/libc/CMakeLists.txt @@ -5,14 +5,16 @@ cmake_minimum_required(VERSION 3.13.4) cmake_policy(SET CMP0076 OLD) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules") -# The top-level source directory of libc. +# The top-level sourse and binary directories. set(LIBC_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) +set(LIBC_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) # The top-level directory in which libc is being built. set(LIBC_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}) # Path libc/scripts directory. set(LIBC_BUILD_SCRIPTS_DIR "${LIBC_SOURCE_DIR}/utils/build_scripts") +set(LIBC_INSTALL_PREFIX "" CACHE STRING "Define libc destination prefix.") set(LIBC_TARGET_OS ${CMAKE_SYSTEM_NAME}) string(TOLOWER ${LIBC_TARGET_OS} LIBC_TARGET_OS) diff --git a/libc/lib/CMakeLists.txt b/libc/lib/CMakeLists.txt index b8ca13b271248..7d99bd9cebf8c 100644 --- a/libc/lib/CMakeLists.txt +++ b/libc/lib/CMakeLists.txt @@ -3,3 +3,22 @@ add_entrypoint_library( DEPENDS ${TARGET_LLVMLIBC_ENTRYPOINTS} ) + +if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR) + 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 llvmlibc + ARCHIVE DESTINATION ${LIBC_INSTALL_PREFIX}/${LIBC_INSTALL_LIBRARY_DIR} + COMPONENT llvmlibc +) + +add_custom_target( + install-llvmlibc + DEPENDS llvmlibc + COMMAND "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=llvmlibc + -P "${LIBC_BINARY_DIR}/cmake_install.cmake" +)