xref: /aosp_15_r20/external/bazelbuild-rules_rust/examples/shared_libs/BUILD.bazel (revision d4726bddaa87cc4778e7472feed243fa4b6c267f)
1*d4726bddSHONG Yifanload("@rules_cc//cc:defs.bzl", "cc_import", "cc_library")
2*d4726bddSHONG Yifanload("@rules_rust//rust:defs.bzl", "rust_shared_library")
3*d4726bddSHONG Yifan
4*d4726bddSHONG Yifan# A rust_shared_library (forcing the use of pic) that depends on a native
5*d4726bddSHONG Yifan# linker library with only a static_library member.
6*d4726bddSHONG Yifanrust_shared_library(
7*d4726bddSHONG Yifan    name = "rust_shared_lib_with_static_dep",
8*d4726bddSHONG Yifan    srcs = ["rust_shared_lib_with_static_dep.rs"],
9*d4726bddSHONG Yifan    deps = [":static_cclib"],
10*d4726bddSHONG Yifan)
11*d4726bddSHONG Yifan
12*d4726bddSHONG Yifancc_library(
13*d4726bddSHONG Yifan    name = "nonstandard_name_cc_lib",
14*d4726bddSHONG Yifan    srcs = ["cc_library_with_func.cc"],
15*d4726bddSHONG Yifan)
16*d4726bddSHONG Yifan
17*d4726bddSHONG Yifangenrule(
18*d4726bddSHONG Yifan    name = "nonstandard_name_gen",
19*d4726bddSHONG Yifan    srcs = [":nonstandard_name_cc_lib"],
20*d4726bddSHONG Yifan    outs = ["nonstandard_name_gen.a"],
21*d4726bddSHONG Yifan    # Copy the first member (libnonstandard_name_cc_lib.a) from the srcs to the
22*d4726bddSHONG Yifan    # output nonstandard_name_gen.a.
23*d4726bddSHONG Yifan    cmd = "cp $$(awk '{print $$1}' <<< '$(SRCS)') $@",
24*d4726bddSHONG Yifan)
25*d4726bddSHONG Yifan
26*d4726bddSHONG Yifancc_import(
27*d4726bddSHONG Yifan    name = "static_cclib",
28*d4726bddSHONG Yifan    static_library = "nonstandard_name_gen.a",
29*d4726bddSHONG Yifan)
30