]> granicus.if.org Git - llvm/commitdiff
[gn build] Add build file for libLTO.dylib
authorNico Weber <nicolasweber@gmx.de>
Fri, 4 Jan 2019 17:12:25 +0000 (17:12 +0000)
committerNico Weber <nicolasweber@gmx.de>
Fri, 4 Jan 2019 17:12:25 +0000 (17:12 +0000)
Not used by anything yet, but will be needed to make check-llvm run ld64's libLTO plugin tests.

Differential Revision: https://reviews.llvm.org/D56317

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

utils/gn/secondary/clang/tools/libclang/BUILD.gn
utils/gn/secondary/llvm/tools/lto/BUILD.gn [new file with mode: 0644]

index 78bbb5398c9a1fb2486d286b3fcbd6e7e5e9d983..c2fad99acf5da46343572883a309c34de79bbd21 100644 (file)
@@ -6,7 +6,7 @@ import("//llvm/version.gni")
 # - linking in clangTidyPlugin and clangIncludeFixerPlugin from
 #   clang-tools-extra (which doesn't have any GN build files yet)
 # - using libclang.exports
-# - an build target copying the Python bindings
+# - a build target copying the Python bindings
 # - the GN linux build always builds without -fPIC (as if LLVM_ENABLE_PIC=OFF
 #   in the CMake build), so libclang is always a static library on linux
 # - the GN build doesn't have LIBCLANG_BUILD_STATIC
@@ -78,7 +78,12 @@ target(libclang_target_type, "libclang") {
     ldflags = [
       "-Wl,-compatibility_version,1",
       "-Wl,-current_version,$llvm_version",
+
+      # See llvm_setup_rpath() in CMake.
       "-Wl,-install_name,@rpath/libclang.dylib",
+      "-Wl,-rpath,@loader_path/../lib",
     ]
   }
+
+  # FIXME: Use libclang.exports
 }
diff --git a/utils/gn/secondary/llvm/tools/lto/BUILD.gn b/utils/gn/secondary/llvm/tools/lto/BUILD.gn
new file mode 100644 (file)
index 0000000..dfd3329
--- /dev/null
@@ -0,0 +1,39 @@
+import("//llvm/version.gni")
+
+lto_target_type = "loadable_module"
+if (host_os == "linux") {
+  # Linux needs -fPIC to build shared libs but they aren't on by default.
+  # For now, make libclang a static lib there.
+  lto_target_type = "static_library"
+}
+
+target(lto_target_type, "lto") {
+  output_name = "libLTO"
+  deps = [
+    "//llvm/lib/Bitcode/Reader",
+    "//llvm/lib/IR",
+    "//llvm/lib/LTO",
+    "//llvm/lib/MC",
+    "//llvm/lib/MC/MCDisassembler",
+    "//llvm/lib/Support",
+    "//llvm/lib/Target",
+    "//llvm/lib/Target:TargetsToBuild",
+  ]
+  sources = [
+    "LTODisassembler.cpp",
+    "lto.cpp",
+  ]
+
+  if (host_os == "mac") {
+    ldflags = [
+      "-Wl,-compatibility_version,1",
+      "-Wl,-current_version,$llvm_version",
+
+      # See llvm_setup_rpath() in CMake.
+      "-Wl,-install_name,@rpath/libLTO.dylib",
+      "-Wl,-rpath,@loader_path/../lib",
+    ]
+  }
+
+  # FIXME: Use lto.exports
+}