[llvm] r201050 - Export lib and exe build target names from build tree

NAKAMURA Takumi geek4civic at gmail.com
Sun Feb 9 08:36:16 PST 2014


Author: chapuni
Date: Sun Feb  9 10:36:16 2014
New Revision: 201050

URL: http://llvm.org/viewvc/llvm-project?rev=201050&view=rev
Log:
Export lib and exe build target names from build tree

Record every logical target that we install with install(TARGETS) in a
global LLVM_EXPORTS property.  Then use the export(TARGETS) command to
provide a "LLVMExports.cmake" file that exports logical targets for
import into applications directly from our build tree.

The "LLVMExports.cmake" file is not meant for direct inclusion by
application code but should be included by "LLVMConfig.cmake" in a
future change.

Contributed by Brad King.

Modified:
    llvm/trunk/cmake/modules/AddLLVM.cmake
    llvm/trunk/cmake/modules/CMakeLists.txt
    llvm/trunk/cmake/modules/TableGen.cmake

Modified: llvm/trunk/cmake/modules/AddLLVM.cmake
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/cmake/modules/AddLLVM.cmake?rev=201050&r1=201049&r2=201050&view=diff
==============================================================================
--- llvm/trunk/cmake/modules/AddLLVM.cmake (original)
+++ llvm/trunk/cmake/modules/AddLLVM.cmake Sun Feb  9 10:36:16 2014
@@ -199,6 +199,7 @@ macro(add_llvm_library name)
         LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
         ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
     endif()
+    set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
   endif()
   set_target_properties(${name} PROPERTIES FOLDER "Libraries")
 
@@ -251,6 +252,7 @@ ${name} ignored.")
           LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
           ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
       endif()
+      set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
     endif()
   endif()
 
@@ -301,6 +303,9 @@ macro(add_llvm_tool name)
               RUNTIME DESTINATION bin)
     endif()
   endif()
+  if( LLVM_BUILD_TOOLS )
+    set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
+  endif()
   set_target_properties(${name} PROPERTIES FOLDER "Tools")
 endmacro(add_llvm_tool name)
 

Modified: llvm/trunk/cmake/modules/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/cmake/modules/CMakeLists.txt?rev=201050&r1=201049&r2=201050&view=diff
==============================================================================
--- llvm/trunk/cmake/modules/CMakeLists.txt (original)
+++ llvm/trunk/cmake/modules/CMakeLists.txt Sun Feb  9 10:36:16 2014
@@ -1,6 +1,10 @@
 set(LLVM_INSTALL_PACKAGE_DIR share/llvm/cmake)
 set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
 
+get_property(LLVM_EXPORTS GLOBAL PROPERTY LLVM_EXPORTS)
+export(TARGETS ${LLVM_EXPORTS}
+  FILE ${llvm_cmake_builddir}/LLVMExports.cmake)
+
 get_property(llvm_libs GLOBAL PROPERTY LLVM_LIBS)
 
 foreach(lib ${llvm_libs})

Modified: llvm/trunk/cmake/modules/TableGen.cmake
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/cmake/modules/TableGen.cmake?rev=201050&r1=201049&r2=201050&view=diff
==============================================================================
--- llvm/trunk/cmake/modules/TableGen.cmake (original)
+++ llvm/trunk/cmake/modules/TableGen.cmake Sun Feb  9 10:36:16 2014
@@ -131,4 +131,5 @@ macro(add_tablegen target project)
             EXPORT LLVMExports
             RUNTIME DESTINATION bin)
   endif()
+  set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${target})
 endmacro()





More information about the llvm-commits mailing list