[CMake] Create a separate install target for libcxx headers

This change doesn't impact the behavior of the install-libcxx target which installs whichever libcxx components you build, it just adds a separate target to just install the headers.

llvm-svn: 268124
This commit is contained in:
Chris Bieneman 2016-04-29 22:17:15 +00:00
parent 1d0ac7c5b8
commit 4497e3a1e6
2 changed files with 16 additions and 3 deletions

View File

@ -19,7 +19,7 @@ file(COPY .
if (LIBCXX_INSTALL_HEADERS)
install(DIRECTORY .
DESTINATION include/c++/v1
COMPONENT libcxx
COMPONENT libcxx-headers
FILES_MATCHING
${LIBCXX_HEADER_PATTERN}
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
@ -46,7 +46,17 @@ if (LIBCXX_INSTALL_HEADERS)
DESTINATION include/c++/v1
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
RENAME __config
COMPONENT libcxx)
COMPONENT libcxx-headers)
endif()
if (NOT CMAKE_CONFIGURATION_TYPES)
# this target is just needed as a placeholder for the distribution target
add_custom_target(libcxx-headers)
add_custom_target(install-libcxx-headers
DEPENDS ${name} libcxx-headers
COMMAND "${CMAKE_COMMAND}"
-DCMAKE_INSTALL_COMPONENT=libcxx-headers
-P "${CMAKE_BINARY_DIR}/cmake_install.cmake")
endif()
endif()

View File

@ -180,8 +180,11 @@ if (NOT CMAKE_CONFIGURATION_TYPES AND (LIBCXX_INSTALL_LIBRARY OR
if(LIBCXX_INSTALL_LIBRARY)
set(deps DEPENDS cxx)
endif()
if(LIBCXX_INSTALL_HEADERS)
set(deps DEPENDS install-libcxx-headers)
endif()
add_custom_target(install-libcxx
${deps}
${deps}
COMMAND "${CMAKE_COMMAND}"
-DCMAKE_INSTALL_COMPONENT=libcxx
-P "${LIBCXX_BINARY_DIR}/cmake_install.cmake")