aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
authorGravatar David Chen <dzc@google.com>2015-09-02 08:12:11 +0000
committerGravatar Florian Weikert <fwe@google.com>2015-09-02 11:54:18 +0000
commit4eda248d3fc5c51b503e1722f62851e1801315aa (patch)
tree60217c202ca526e03cea0ca84f71821e3c0f8759 /tools
parent060994f580f980300eb22f0e52d8921662349c96 (diff)
Set DYLD_LIBRARY_PATH correctly for rustc.
-- MOS_MIGRATED_REVID=102121504
Diffstat (limited to 'tools')
-rw-r--r--tools/build_rules/rust/BUILD8
-rw-r--r--tools/build_rules/rust/rust-darwin-x86_64.BUILD6
-rw-r--r--tools/build_rules/rust/rust-linux-x86_64.BUILD6
-rw-r--r--tools/build_rules/rust/rust.bzl4
4 files changed, 24 insertions, 0 deletions
diff --git a/tools/build_rules/rust/BUILD b/tools/build_rules/rust/BUILD
index b314c0df5e..284933418e 100644
--- a/tools/build_rules/rust/BUILD
+++ b/tools/build_rules/rust/BUILD
@@ -19,6 +19,14 @@ filegroup(
)
filegroup(
+ name = "rustc_lib",
+ srcs = select({
+ ":darwin": ["@rust-darwin-x86_64//:rustc_lib"],
+ ":k8": ["@rust-linux-x86_64//:rustc_lib"],
+ }),
+)
+
+filegroup(
name = "rustlib",
srcs = select({
":darwin": ["@rust-darwin-x86_64//:rustlib"],
diff --git a/tools/build_rules/rust/rust-darwin-x86_64.BUILD b/tools/build_rules/rust/rust-darwin-x86_64.BUILD
index 1e3b7c97c1..cc7aaadd2f 100644
--- a/tools/build_rules/rust/rust-darwin-x86_64.BUILD
+++ b/tools/build_rules/rust/rust-darwin-x86_64.BUILD
@@ -7,6 +7,12 @@ filegroup(
)
filegroup(
+ name = "rustc_lib",
+ srcs = glob([BASE_DIR + "rustc/lib/*.dylib"]),
+ visibility = ["//visibility:public"],
+)
+
+filegroup(
name = "rustdoc",
srcs = [BASE_DIR + "rustc/bin/rustdoc"],
visibility = ["//visibility:public"],
diff --git a/tools/build_rules/rust/rust-linux-x86_64.BUILD b/tools/build_rules/rust/rust-linux-x86_64.BUILD
index 27559106fd..7d4a7e3478 100644
--- a/tools/build_rules/rust/rust-linux-x86_64.BUILD
+++ b/tools/build_rules/rust/rust-linux-x86_64.BUILD
@@ -7,6 +7,12 @@ filegroup(
)
filegroup(
+ name = "rustc_lib",
+ srcs = glob([BASE_DIR + "rustc/lib/*.so"]),
+ visibility = ["//visibility:public"],
+)
+
+filegroup(
name = "rustdoc",
srcs = [BASE_DIR + "rustc/bin/rustdoc"],
visibility = ["//visibility:public"],
diff --git a/tools/build_rules/rust/rust.bzl b/tools/build_rules/rust/rust.bzl
index 149f41536f..847775ddfc 100644
--- a/tools/build_rules/rust/rust.bzl
+++ b/tools/build_rules/rust/rust.bzl
@@ -120,6 +120,7 @@ def _build_rustc_command(ctx, crate_type, src, output_dir, depinfo,
# Paths to the Rust compiler and standard libraries.
rustc_path = ctx.file._rustc.path
+ rustc_lib_path = ctx.files._rustc_lib[0].dirname
rustlib_path = ctx.files._rustlib[0].dirname
# Paths to cc (for linker) and ar
@@ -140,6 +141,7 @@ def _build_rustc_command(ctx, crate_type, src, output_dir, depinfo,
return " ".join([
"set -e;",
" ".join(depinfo.setup_cmd),
+ "DYLD_LIBRARY_PATH=" + rustc_lib_path,
rustc_path + " " + src,
"--crate-name " + ctx.label.name,
"--crate-type " + crate_type,
@@ -267,6 +269,8 @@ _rust_common_attrs = {
default = Label("//tools/build_rules/rust:rustc"),
executable = True,
single_file = True),
+ "_rustc_lib": attr.label(
+ default = Label("//tools/build_rules/rust:rustc_lib")),
"_rustlib": attr.label(default = Label("//tools/build_rules/rust:rustlib")),
}