ソースを参照

[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 年 前
コミット
ffa3db2cc6
2 ファイル変更16 行追加3 行削除
  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)
   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()

+ 4 - 1
lib/CMakeLists.txt

@@ -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")