xref: /aosp_15_r20/external/bazelbuild-rules_rust/test/no_std/BUILD.bazel (revision d4726bddaa87cc4778e7472feed243fa4b6c267f)
1load("@no_std_crate_index//:defs.bzl", "aliases", "all_crate_deps")
2load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
3load(
4    "@rules_rust//rust:defs.bzl",
5    "rust_binary",
6    "rust_library",
7    "rust_shared_library",
8)
9
10rust_shared_library(
11    name = "lib",
12    srcs = [
13        "lib.rs",
14        "no_std.rs",
15    ],
16    crate_features = select({
17        "@rules_rust//:is_no_std": [],
18        "//conditions:default": ["std"],
19    }),
20    edition = "2021",
21    deps = ["custom_alloc"],
22)
23
24rust_library(
25    name = "custom_alloc",
26    srcs = ["alloc.rs"],
27    aliases = aliases(),
28    deps = all_crate_deps(normal = True),
29)
30
31cc_library(
32    name = "nostartfiles",
33    linkopts = ["-nostartfiles"],
34)
35
36rust_binary(
37    name = "main",
38    srcs = ["main.rs"],
39    aliases = aliases(),
40    deps = all_crate_deps(normal = True) + [":nostartfiles"],
41)
42
43cc_test(
44    name = "no_std_cc_test",
45    srcs = ["main.c"],
46    deps = [":lib"],
47)
48