xref: /aosp_15_r20/bootable/libbootloader/gbl/libgbl/BUILD (revision 5225e6b173e52d2efc6bcf950c27374fd72adabc)
1# Copyright (C) 2024 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#     http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15load("@gbl//toolchain:gbl_workspace_util.bzl", "ANDROID_RUST_LINTS")
16load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test")
17
18rust_library(
19    name = "libgbl",
20    srcs = glob(
21        ["**/*.rs"],
22        exclude = ["tests/**/*.rs"],
23    ),
24    aliases = {"@itertools_noalloc": "itertools_noalloc"},
25    edition = "2021",
26    rustc_flags = ANDROID_RUST_LINTS,
27    visibility = ["//visibility:public"],
28    deps = [
29        "@arrayvec",
30        "@avb",
31        "@avb//:avb_bindgen",
32        "@bitflags",
33        "@crc32fast",
34        "@cstr",
35        "@gbl//libabr",
36        "@gbl//libasync",
37        "@gbl//libboot",
38        "@gbl//libbootimg",
39        "@gbl//libbootparams",
40        "@gbl//libdttable",
41        "@gbl//liberror",
42        "@gbl//libfastboot",
43        "@gbl//libfdt",
44        "@gbl//libmisc",
45        "@gbl//libsafemath",
46        "@gbl//libstorage",
47        "@gbl//libutils",
48        "@itertools_noalloc",
49        "@lz4_flex",
50        "@spin",
51        "@static_assertions",
52        "@uuid",
53        "@zbi",
54        "@zerocopy",
55        "@zune_inflate",
56    ],
57)
58
59rust_test(
60    name = "libgbl_test",
61    aliases = {"@itertools_noalloc": "itertools_noalloc"},
62    compile_data = [
63        "@gbl//libstorage/test:test_data",
64    ],
65    crate = ":libgbl",
66    crate_features = ["uuid"],
67    data = [
68        "@gbl//libdttable/test/data:all",
69        "@gbl//libfdt/test/data:all",
70        "@gbl//libgbl/testdata:cert_metadata.bin",
71        "@gbl//libgbl/testdata:cert_permanent_attributes.bad.bin",
72        "@gbl//libgbl/testdata:cert_permanent_attributes.bad.hash",
73        "@gbl//libgbl/testdata:cert_permanent_attributes.bin",
74        "@gbl//libgbl/testdata:cert_permanent_attributes.hash",
75        "@gbl//libgbl/testdata:sparse_test.bin",
76        "@gbl//libgbl/testdata:sparse_test_blk1024.bin",
77        "@gbl//libgbl/testdata:sparse_test_raw.bin",
78        "@gbl//libgbl/testdata:testkey_rsa4096_pub.bin",
79        "@gbl//libgbl/testdata:vbmeta_a.bin",
80        "@gbl//libgbl/testdata:vbmeta_b.bin",
81        "@gbl//libgbl/testdata:vbmeta_r.bin",
82        "@gbl//libgbl/testdata:vbmeta_slotless.bin",
83        "@gbl//libgbl/testdata:writeback_test_disk.bin",
84        "@gbl//libgbl/testdata:zircon_a.vbmeta",
85        "@gbl//libgbl/testdata:zircon_a.vbmeta.cert",
86        "@gbl//libgbl/testdata:zircon_a.zbi",
87        "@gbl//libgbl/testdata:zircon_b.zbi",
88        "@gbl//libgbl/testdata:zircon_r.zbi",
89        "@gbl//libgbl/testdata:zircon_slotless.zbi",
90    ],
91    rustc_flags = ANDROID_RUST_LINTS,
92    deps = [
93        "@avb//:avb_crypto_ops_sha_impl_staticlib",
94        "@avb//:avb_test",
95        "@gbl//libasync:cyclic_executor",
96        "@gbl//libavb:sysdeps",
97        "@itertools",
98        "@itertools_noalloc",
99        "@static_assertions",
100        "@uuid",
101    ],
102)
103