[libcxx] Add "install-libcxx" target.

Summary: Currently you can't install libc++ from within the LLVM tree without installing all of LLVM. This patch adds an install rule for libc++.

Reviewers: mclow.lists, danalbert, jroelofs, EricWF

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D11697

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@245470 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/cmake/Modules/HandleLibCXXABI.cmake b/cmake/Modules/HandleLibCXXABI.cmake
index 4224882..39cca9d 100644
--- a/cmake/Modules/HandleLibCXXABI.cmake
+++ b/cmake/Modules/HandleLibCXXABI.cmake
@@ -43,6 +43,7 @@
           )
         install(FILES "${CMAKE_BINARY_DIR}/include/${fpath}"
           DESTINATION include/c++/v1/${dstdir}
+          COMPONENT libcxx
           PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
           )
         list(APPEND abilib_headers "${CMAKE_BINARY_DIR}/include/${fpath}")
diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
index 95206bf..7a7c229 100644
--- a/include/CMakeLists.txt
+++ b/include/CMakeLists.txt
@@ -17,6 +17,7 @@
 if (LIBCXX_INSTALL_HEADERS)
   install(DIRECTORY .
     DESTINATION include/c++/v1
+    COMPONENT libcxx
     FILES_MATCHING
     ${LIBCXX_HEADER_PATTERN}
     PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index 26dee67..0c83f05 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -134,6 +134,14 @@
   )
 
 install(TARGETS cxx
-  LIBRARY DESTINATION lib${LIBCXX_LIBDIR_SUFFIX}
-  ARCHIVE DESTINATION lib${LIBCXX_LIBDIR_SUFFIX}
+  LIBRARY DESTINATION lib${LIBCXX_LIBDIR_SUFFIX} COMPONENT libcxx
+  ARCHIVE DESTINATION lib${LIBCXX_LIBDIR_SUFFIX} COMPONENT libcxx
   )
+
+if (NOT CMAKE_CONFIGURATION_TYPES)
+  add_custom_target(install-libcxx
+                    DEPENDS cxx
+                    COMMAND "${CMAKE_COMMAND}"
+                    -DCMAKE_INSTALL_COMPONENT=libcxx
+                    -P "${LIBCXX_BINARY_DIR}/cmake_install.cmake")
+endif()