summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2019-07-09 21:43:01 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2019-07-09 21:43:01 +0000
commit9eaa4d176d1bc7f6b842c924b704a445798e38c4 (patch)
treeb0fc536d55a98a6e4feb553a7eef949ee61f6c8d
parent9132b5b287372d8fcb304016ae9ea4bd717151b5 (diff)
build: use multiple `install` rather than building up a list
Rather than building up a list to iterate over later, just create multiple install commands based on the configuration. This makes it easier to see what is getting installed and allows for the install handling to be centralised. NFC git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@365562 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--src/CMakeLists.txt32
1 files changed, 20 insertions, 12 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index c13f89015..31cd24333 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -323,9 +323,6 @@ if (LIBCXX_ENABLE_SHARED)
endif()
list(APPEND LIBCXX_BUILD_TARGETS "cxx_shared")
- if (LIBCXX_INSTALL_SHARED_LIBRARY)
- list(APPEND LIBCXX_INSTALL_TARGETS "cxx_shared")
- endif()
if(WIN32 AND NOT MINGW AND NOT "${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Windows")
# Since we most likely do not have a mt.exe replacement, disable the
# manifest bundling. This allows a normal cmake invocation to pass which
@@ -362,9 +359,6 @@ if (LIBCXX_ENABLE_STATIC)
endif()
list(APPEND LIBCXX_BUILD_TARGETS "cxx_static")
- if (LIBCXX_INSTALL_STATIC_LIBRARY)
- list(APPEND LIBCXX_INSTALL_TARGETS "cxx_static")
- endif()
# Attempt to merge the libc++.a archive and the ABI library archive into one.
if (LIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY)
set(MERGE_ARCHIVES_SEARCH_PATHS "")
@@ -439,13 +433,27 @@ if (LIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY)
endif()
if (LIBCXX_INSTALL_LIBRARY)
- if (LIBCXX_INSTALL_EXPERIMENTAL_LIBRARY)
- set(experimental_lib cxx_experimental)
+ if (LIBCXX_INSTALL_SHARED_LIBRARY)
+ install(TARGETS cxx_shared
+ ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+ LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+ RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
endif()
- install(TARGETS ${LIBCXX_INSTALL_TARGETS} ${experimental_lib}
- LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
- ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
- )
+
+ if (LIBCXX_INSTALL_STATIC_LIBRARY)
+ install(TARGETS cxx_static
+ ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+ LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+ RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
+ endif()
+
+ if(LIBCXX_INSTALL_EXPERIMENTAL_LIBRARY)
+ install(TARGETS ${LIBCXX_INSTALL_TARGETS} ${experimental_lib}
+ LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+ ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+ RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
+ endif()
+
# NOTE: This install command must go after the cxx install command otherwise
# it will not be executed after the library symlinks are installed.
if (LIBCXX_ENABLE_SHARED AND LIBCXX_ENABLE_ABI_LINKER_SCRIPT)