Skip to content

Commit

Permalink
Merge branch 'main' into build_script
Browse files Browse the repository at this point in the history
  • Loading branch information
illicitonion committed Jun 6, 2024
2 parents 3000d36 + 7f2b47c commit c1c1b04
Show file tree
Hide file tree
Showing 9 changed files with 68 additions and 22 deletions.
12 changes: 6 additions & 6 deletions .bazelci/presubmit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ tasks:
- //test:query_test_binary
rbe_ubuntu2004:
shell_commands:
- sed -i 's/^# load("@bazelci_rules/load("@bazelci_rules/' WORKSPACE.bazel
- sed -i 's/^# load("@bazel_ci_rules/load("@bazel_ci_rules/' WORKSPACE.bazel
- sed -i 's/^# rbe_preconfig/rbe_preconfig/' WORKSPACE.bazel
build_targets: *default_linux_targets
test_targets: *default_linux_targets
Expand Down Expand Up @@ -126,7 +126,7 @@ tasks:
name: With Aspects
platform: rbe_ubuntu2004
shell_commands:
- sed -i 's/^# load("@bazelci_rules/load("@bazelci_rules/' WORKSPACE.bazel
- sed -i 's/^# load("@bazel_ci_rules/load("@bazel_ci_rules/' WORKSPACE.bazel
- sed -i 's/^# rbe_preconfig/rbe_preconfig/' WORKSPACE.bazel
build_flags: *aspects_flags
build_targets: *default_linux_targets
Expand All @@ -135,7 +135,7 @@ tasks:
name: RBE Rolling Bazel Version With Aspects
platform: rbe_ubuntu2004
shell_commands:
- sed -i 's/^# load("@bazelci_rules/load("@bazelci_rules/' WORKSPACE.bazel
- sed -i 's/^# load("@bazel_ci_rules/load("@bazel_ci_rules/' WORKSPACE.bazel
- sed -i 's/^# rbe_preconfig/rbe_preconfig/' WORKSPACE.bazel
build_targets: *default_linux_targets
test_targets: *default_linux_targets
Expand Down Expand Up @@ -406,7 +406,7 @@ tasks:
# See https://github.com/bazelbuild/bazel/issues/9987
- "-//ffi/rust_calling_c:matrix_dylib_test"
shell_commands:
- sed -i 's/^# load("@bazelci_rules/load("@bazelci_rules/' WORKSPACE.bazel
- sed -i 's/^# load("@bazel_ci_rules/load("@bazel_ci_rules/' WORKSPACE.bazel
- sed -i 's/^# rbe_preconfig/rbe_preconfig/' WORKSPACE.bazel
build_targets: *rbe_examples_targets
test_targets: *rbe_examples_targets
Expand Down Expand Up @@ -463,7 +463,7 @@ tasks:
platform: rbe_ubuntu2004
working_directory: examples/crate_universe
shell_commands:
- sed -i 's/^# load("@bazelci_rules/load("@bazelci_rules/' WORKSPACE.bazel
- sed -i 's/^# load("@bazel_ci_rules/load("@bazel_ci_rules/' WORKSPACE.bazel
- sed -i 's/^# rbe_preconfig/rbe_preconfig/' WORKSPACE.bazel
run_targets: *crate_universe_vendor_example_targets
build_targets:
Expand All @@ -476,7 +476,7 @@ tasks:
platform: rbe_ubuntu2004
working_directory: examples/crate_universe_unnamed
shell_commands:
- sed -i 's/^# load("@bazelci_rules/load("@bazelci_rules/' WORKSPACE.bazel
- sed -i 's/^# load("@bazel_ci_rules/load("@bazel_ci_rules/' WORKSPACE.bazel
- sed -i 's/^# rbe_preconfig/rbe_preconfig/' WORKSPACE.bazel
run_targets: *crate_universe_unnamed_vendor_example_targets
build_targets:
Expand Down
6 changes: 5 additions & 1 deletion MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,11 @@ bazel_dep(
version = "1.39.0",
)

bazel_dep(
name = "bazel_ci_rules",
version = "1.0.0",
dev_dependency = True,
)
bazel_dep(
name = "rules_python",
version = "0.31.0",
Expand All @@ -58,7 +63,6 @@ bazel_dep(
internal_deps = use_extension("//rust/private:extensions.bzl", "i")
use_repo(
internal_deps,
"bazelci_rules",
"cargo_bazel.buildifier-darwin-amd64",
"cargo_bazel.buildifier-darwin-arm64",
"cargo_bazel.buildifier-linux-amd64",
Expand Down
4 changes: 2 additions & 2 deletions WORKSPACE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -70,15 +70,15 @@ rules_rust_test_deps_transitive()
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
name = "bazelci_rules",
name = "bazel_ci_rules",
sha256 = "eca21884e6f66a88c358e580fd67a6b148d30ab57b1680f62a96c00f9bc6a07e",
strip_prefix = "bazelci_rules-1.0.0",
url = "https://github.com/bazelbuild/continuous-integration/releases/download/rules-1.0.0/bazelci_rules-1.0.0.tar.gz",
)

# To run with RBE on Bazel CI, uncomment the following lines.
#
# load("@bazelci_rules//:rbe_repo.bzl", "rbe_preconfig")
# load("@bazel_ci_rules//:rbe_repo.bzl", "rbe_preconfig")
# rbe_preconfig(name = "buildkite_config", toolchain = "ubuntu2004-bazel-java11")

http_archive(
Expand Down
4 changes: 2 additions & 2 deletions examples/WORKSPACE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -164,13 +164,13 @@ http_archive(
###############################################################################

http_archive(
name = "bazelci_rules",
name = "bazel_ci_rules",
sha256 = "eca21884e6f66a88c358e580fd67a6b148d30ab57b1680f62a96c00f9bc6a07e",
strip_prefix = "bazelci_rules-1.0.0",
url = "https://github.com/bazelbuild/continuous-integration/releases/download/rules-1.0.0/bazelci_rules-1.0.0.tar.gz",
)

load("@bazelci_rules//:rbe_repo.bzl", "rbe_preconfig")
load("@bazel_ci_rules//:rbe_repo.bzl", "rbe_preconfig")

# Creates a default toolchain config for RBE.
# Use this as is if you are using the rbe_ubuntu16_04 container,
Expand Down
8 changes: 0 additions & 8 deletions rust/private/extensions.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,6 @@ def _internal_deps_impl(module_ctx):
direct_deps.extend(rust_wasm_bindgen_dependencies())
direct_deps.extend(rules_rust_test_deps())

http_archive(
name = "bazelci_rules",
sha256 = "eca21884e6f66a88c358e580fd67a6b148d30ab57b1680f62a96c00f9bc6a07e",
strip_prefix = "bazelci_rules-1.0.0",
url = "https://github.com/bazelbuild/continuous-integration/releases/download/rules-1.0.0/bazelci_rules-1.0.0.tar.gz",
)
direct_deps.append(struct(repo = "bazelci_rules", is_dev_dep = True))

# is_dev_dep is ignored here. It's not relevant for internal_deps, as dev
# dependencies are only relevant for module extensions that can be used
# by other MODULES.
Expand Down
12 changes: 11 additions & 1 deletion rust/private/rustc.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -1444,8 +1444,18 @@ def rustc_compile_action(

experimental_use_coverage_metadata_files = toolchain._experimental_use_coverage_metadata_files

dynamic_libraries = [
library_to_link.dynamic_library
for dep in getattr(ctx.attr, "deps", [])
if CcInfo in dep
for linker_input in dep[CcInfo].linking_context.linker_inputs.to_list()
for library_to_link in linker_input.libraries
if _is_dylib(library_to_link)
]
runfiles = ctx.runfiles(
files = getattr(ctx.files, "data", []) + ([] if experimental_use_coverage_metadata_files else coverage_runfiles),
files = getattr(ctx.files, "data", []) +
([] if experimental_use_coverage_metadata_files else coverage_runfiles) +
dynamic_libraries,
collect_data = True,
)
if getattr(ctx.attr, "crate", None):
Expand Down
31 changes: 29 additions & 2 deletions test/cc_shared_library/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
load("@rules_rust//rust:defs.bzl", "rust_static_library")
load("@rules_cc//cc:defs.bzl", "cc_import", "cc_library", "cc_test")
load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_static_library")

rust_static_library(
name = "rust_lib",
Expand Down Expand Up @@ -28,3 +28,30 @@ cc_test(
linkstatic = True,
deps = [":c_lib"],
)

NOT_WINDOWS = select({
"@platforms//os:linux": [],
"@platforms//os:macos": [],
"//conditions:default": ["@platforms//:incompatible"],
})

cc_import(
name = "shared_import",
shared_library = ":shared",
target_compatible_with = NOT_WINDOWS,
)

rust_binary(
name = "linked_against_shared",
srcs = ["linked_against_shared.rs"],
edition = "2018",
target_compatible_with = NOT_WINDOWS,
deps = [":shared_import"],
)

sh_test(
name = "runfiles_contains_shared",
srcs = ["runfiles_contains_shared.sh"],
data = [":linked_against_shared"],
target_compatible_with = NOT_WINDOWS,
)
6 changes: 6 additions & 0 deletions test/cc_shared_library/linked_against_shared.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
extern "C" {
fn foo() -> i32;
}
fn main() {
println!("{}", unsafe { foo() })
}
7 changes: 7 additions & 0 deletions test/cc_shared_library/runfiles_contains_shared.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/sh

set -eux

# Validate that the runfiles directory actually contains the shared
# library against which the Rust binary is linked.
test -n "$(find ${RUNFILES_DIR} -name 'libshared.*')"

0 comments on commit c1c1b04

Please sign in to comment.