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.

llvm-svn: 286181

clang/cmake/modules/AddClang.cmake

index 88ee1f7..16c65f6 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})