[PATCH] D16387: [llvm-go] add component lib deps to llvm-go

Andrew Wilkins via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 20 17:40:58 PST 2016


axw created this revision.
axw added reviewers: eugenis, pcc.
axw added a subscriber: llvm-commits.

llvm-go will call llvm-config --libs to get the
library names for all of the components required
to link Go code using the LLVM Go bindings. This
fails if the component libraries are not all built,
because llvm-go does not have the dependencies.

We move the dependencies off targets built with
llvm-go, and onto llvm-go itself, since llvm-go
is practically useless without them. This enables
running the Go bindings tests without building the
component libraries explicitly.

http://reviews.llvm.org/D16387

Files:
  cmake/modules/AddLLVM.cmake
  tools/llvm-go/CMakeLists.txt

Index: tools/llvm-go/CMakeLists.txt
===================================================================
--- tools/llvm-go/CMakeLists.txt
+++ tools/llvm-go/CMakeLists.txt
@@ -1,8 +1,11 @@
 if(LLVM_BINDINGS MATCHES "go")
+  # FIXME: This should depend only on the libraries Go needs.
+  get_property(llvmlibs GLOBAL PROPERTY LLVM_LIBS)
   set(binpath ${CMAKE_BINARY_DIR}/bin/llvm-go${CMAKE_EXECUTABLE_SUFFIX})
   add_custom_command(OUTPUT ${binpath}
     COMMAND ${GO_EXECUTABLE} build -o ${binpath} llvm-go.go
     DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/llvm-go.go
+            ${llvmlibs}
     WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
     COMMENT "Building Go executable llvm-go")
   add_custom_target(llvm-go ALL DEPENDS ${binpath})
Index: cmake/modules/AddLLVM.cmake
===================================================================
--- cmake/modules/AddLLVM.cmake
+++ cmake/modules/AddLLVM.cmake
@@ -902,8 +902,6 @@
   cmake_parse_arguments(ARG "ALL" "" "DEPENDS;GOFLAGS" ${ARGN})
 
   if(LLVM_BINDINGS MATCHES "go")
-    # FIXME: This should depend only on the libraries Go needs.
-    get_property(llvmlibs GLOBAL PROPERTY LLVM_LIBS)
     set(binpath ${CMAKE_BINARY_DIR}/bin/${binary}${CMAKE_EXECUTABLE_SUFFIX})
     set(cc "${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1}")
     set(cxx "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1}")
@@ -916,8 +914,7 @@
     add_custom_command(OUTPUT ${binpath}
       COMMAND ${CMAKE_BINARY_DIR}/bin/llvm-go "go=${GO_EXECUTABLE}" "cc=${cc}" "cxx=${cxx}" "cppflags=${cppflags}" "ldflags=${ldflags}"
               ${ARG_GOFLAGS} build -o ${binpath} ${pkgpath}
-      DEPENDS llvm-config ${CMAKE_BINARY_DIR}/bin/llvm-go${CMAKE_EXECUTABLE_SUFFIX}
-              ${llvmlibs} ${ARG_DEPENDS}
+      DEPENDS llvm-config ${CMAKE_BINARY_DIR}/bin/llvm-go${CMAKE_EXECUTABLE_SUFFIX} ${ARG_DEPENDS}
       COMMENT "Building Go executable ${binary}"
       VERBATIM)
     if (ARG_ALL)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D16387.45476.patch
Type: text/x-patch
Size: 1919 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160121/7714e31a/attachment.bin>


More information about the llvm-commits mailing list