Selaa lähdekoodia

[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.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@268124 91177308-0d34-0410-b5e6-96231b3b80d8
Chris Bieneman 9 vuotta sitten
vanhempi
commit
ffa3db2cc6
2 muutettua tiedostoa jossa 16 lisäystä ja 3 poistoa
  1. 12 2
      include/CMakeLists.txt
  2. 4 1
      lib/CMakeLists.txt

+ 12 - 2
include/CMakeLists.txt

@@ -19,7 +19,7 @@ file(COPY .
 if (LIBCXX_INSTALL_HEADERS)
 if (LIBCXX_INSTALL_HEADERS)
   install(DIRECTORY .
   install(DIRECTORY .
     DESTINATION include/c++/v1
     DESTINATION include/c++/v1
-    COMPONENT libcxx
+    COMPONENT libcxx-headers
     FILES_MATCHING
     FILES_MATCHING
     ${LIBCXX_HEADER_PATTERN}
     ${LIBCXX_HEADER_PATTERN}
     PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
     PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
@@ -46,7 +46,17 @@ if (LIBCXX_INSTALL_HEADERS)
       DESTINATION include/c++/v1
       DESTINATION include/c++/v1
       PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
       PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
       RENAME __config
       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()
 
 
 endif()
 endif()

+ 4 - 1
lib/CMakeLists.txt

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