]> granicus.if.org Git - clang/commitdiff
cmake: Don't try to install exports if there aren't any
authorJustin Bogner <mail@justinbogner.com>
Tue, 8 Nov 2016 05:02:33 +0000 (05:02 +0000)
committerJustin Bogner <mail@justinbogner.com>
Tue, 8 Nov 2016 05:02:33 +0000 (05:02 +0000)
When using LLVM_DISTRIBUTION_COMPONENTS, it's possible for clang's
export list to be empty. If this happens the install(EXPORTS) command
will fail, but since there isn't anything to install anyway we really
just want to skip it.

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

cmake/modules/AddClang.cmake
cmake/modules/CMakeLists.txt

index 16c65f632bc6dcdf1e02fa3dddee85357d01fd63..e657059744a4ffa77115275f74ee298b6487d891 100644 (file)
@@ -93,6 +93,7 @@ macro(add_clang_library name)
       if(${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
           NOT LLVM_DISTRIBUTION_COMPONENTS)
         set(export_to_clangtargets EXPORT ClangTargets)
+        set_property(GLOBAL PROPERTY CLANG_HAS_EXPORTS True)
       endif()
 
       install(TARGETS ${name}
@@ -137,6 +138,7 @@ macro(add_clang_tool name)
     if(${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
         NOT LLVM_DISTRIBUTION_COMPONENTS)
       set(export_to_clangtargets EXPORT ClangTargets)
+      set_property(GLOBAL PROPERTY CLANG_HAS_EXPORTS True)
     endif()
 
     install(TARGETS ${name}
index 3cc808a46b95812133718db72064a4564aa44d64..b784c0d215eab20adf6fbe7723f74d86d53a4a6f 100644 (file)
@@ -39,7 +39,10 @@ set(CLANG_CONFIG_CMAKE_DIR)
 set(CLANG_CONFIG_EXPORTS_FILE)
 
 if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-  install(EXPORT ClangTargets DESTINATION ${CLANG_INSTALL_PACKAGE_DIR})
+  get_property(clang_has_exports GLOBAL PROPERTY CLANG_HAS_EXPORTS)
+  if(clang_has_exports)
+    install(EXPORT ClangTargets DESTINATION ${CLANG_INSTALL_PACKAGE_DIR})
+  endif()
 
   install(FILES
     ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/ClangConfig.cmake