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.

llvm-svn: 286210

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

index 16c65f6..e657059 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 3cc808a..b784c0d 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