]> granicus.if.org Git - clang/commitdiff
cmake: Support exports correctly with LLVM_DISTRIBUTION_COMPONENTS
authorJustin Bogner <mail@justinbogner.com>
Mon, 7 Nov 2016 23:46:05 +0000 (23:46 +0000)
committerJustin Bogner <mail@justinbogner.com>
Mon, 7 Nov 2016 23:46:05 +0000 (23:46 +0000)
We need to apply the same export logic in clang as in llvm for
LLVM_DISTRIBUTION_COMPONENTS, or the clang exports will be invalid
when we use this config.

This makes using distribution components without setting
LLVM_TOOLCHAIN_ONLY=On work correctly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@286181 91177308-0d34-0410-b5e6-96231b3b80d8

cmake/modules/AddClang.cmake

index 88ee1f71ed78c2732ae81b2e1df55a58f6e43de2..16c65f632bc6dcdf1e02fa3dddee85357d01fd63 100644 (file)
@@ -89,9 +89,15 @@ macro(add_clang_library name)
     target_link_libraries(${name} INTERFACE ${LLVM_COMMON_LIBS})
 
     if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "libclang")
+
+      if(${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
+          NOT LLVM_DISTRIBUTION_COMPONENTS)
+        set(export_to_clangtargets EXPORT ClangTargets)
+      endif()
+
       install(TARGETS ${name}
         COMPONENT ${name}
-        EXPORT ClangTargets
+        ${export_to_clangtargets}
         LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
         ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
         RUNTIME DESTINATION bin)
@@ -128,7 +134,13 @@ macro(add_clang_tool name)
   add_clang_executable(${name} ${ARGN})
 
   if (CLANG_BUILD_TOOLS)
+    if(${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
+        NOT LLVM_DISTRIBUTION_COMPONENTS)
+      set(export_to_clangtargets EXPORT ClangTargets)
+    endif()
+
     install(TARGETS ${name}
+      ${export_to_clangtargets}
       RUNTIME DESTINATION bin
       COMPONENT ${name})