xref: /aosp_15_r20/external/bazelbuild-rules_rust/examples/ambiguous_deps/BUILD.bazel (revision d4726bddaa87cc4778e7472feed243fa4b6c267f)
1*d4726bddSHONG Yifanload("@rules_cc//cc:defs.bzl", "cc_library")
2*d4726bddSHONG Yifanload("@rules_rust//rust:defs.bzl", "rust_binary")
3*d4726bddSHONG Yifan
4*d4726bddSHONG Yifan# A rust_binary that depends on two native libs with the same name.
5*d4726bddSHONG Yifan# See https://github.com/bazelbuild/rules_rust/issues/840.
6*d4726bddSHONG Yifanrust_binary(
7*d4726bddSHONG Yifan    name = "bin_with_same_name_deps",
8*d4726bddSHONG Yifan    srcs = ["bin.rs"],
9*d4726bddSHONG Yifan    deps = [
10*d4726bddSHONG Yifan        "//ambiguous_deps/x:exc",
11*d4726bddSHONG Yifan        "//ambiguous_deps/y:exc",
12*d4726bddSHONG Yifan    ],
13*d4726bddSHONG Yifan)
14*d4726bddSHONG Yifan
15*d4726bddSHONG Yifan# A rust_binary that depends on a native library with a name that doesn't
16*d4726bddSHONG Yifan# match the `lib<name>.a` pattern on linux.
17*d4726bddSHONG Yifanrust_binary(
18*d4726bddSHONG Yifan    name = "nonstandard_name_bin",
19*d4726bddSHONG Yifan    srcs = ["nonstandard_name_bin.rs"],
20*d4726bddSHONG Yifan    deps = [":nonstandard_name_intermediate"],
21*d4726bddSHONG Yifan)
22*d4726bddSHONG Yifan
23*d4726bddSHONG Yifancc_library(
24*d4726bddSHONG Yifan    name = "nonstandard_name_cc_lib",
25*d4726bddSHONG Yifan    srcs = ["cc_library_with_func.cc"],
26*d4726bddSHONG Yifan)
27*d4726bddSHONG Yifan
28*d4726bddSHONG Yifangenrule(
29*d4726bddSHONG Yifan    name = "nonstandard_name_gen",
30*d4726bddSHONG Yifan    srcs = [":nonstandard_name_cc_lib"],
31*d4726bddSHONG Yifan    outs = ["nonstandard_name_gen.a"],
32*d4726bddSHONG Yifan    # Copy the first member (libnonstandard_name_cc_lib.a) from the srcs to the
33*d4726bddSHONG Yifan    # output nonstandard_name_gen.a.
34*d4726bddSHONG Yifan    cmd = "cp $$(awk '{print $$1}' <<< '$(SRCS)') $@",
35*d4726bddSHONG Yifan)
36*d4726bddSHONG Yifan
37*d4726bddSHONG Yifancc_library(
38*d4726bddSHONG Yifan    name = "nonstandard_name_intermediate",
39*d4726bddSHONG Yifan    srcs = [":nonstandard_name_gen.a"],
40*d4726bddSHONG Yifan)
41