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