1package { 2 default_applicable_licenses: ["Android-Apache-2.0"], 3} 4 5rust_bindgen { 6 name: "liblibfdt_bindgen", 7 crate_name: "libfdt_bindgen", 8 defaults: ["avf_build_flags_rust"], 9 wrapper_src: "bindgen/fdt.h", 10 source_stem: "bindings", 11 bindgen_flags: [ 12 "--allowlist-type=fdt_.*", 13 "--allowlist-function=fdt_.*", 14 "--allowlist-var=FDT_.*", 15 "--use-core", 16 "--raw-line=#![no_std]", 17 "--ctypes-prefix=core::ffi", 18 ], 19 dylib: { 20 enabled: false, 21 }, 22 header_libs: [ 23 "libfdt", 24 ], 25 apex_available: ["com.android.virt"], 26} 27 28rust_defaults { 29 name: "liblibfdt_defaults", 30 crate_name: "libfdt", 31 defaults: ["avf_build_flags_rust"], 32 srcs: [ 33 "src/lib.rs", 34 ":liblibfdt_bindgen", 35 ], 36 edition: "2021", 37 rustlibs: [ 38 "libcstr", 39 "liblibfdt_bindgen", 40 "libstatic_assertions", 41 "libzerocopy_nostd", 42 ], 43} 44 45rust_library_rlib { 46 name: "liblibfdt", 47 defaults: ["liblibfdt_defaults"], 48 whole_static_libs: [ 49 "libfdt", 50 ], 51 apex_available: ["com.android.virt"], 52} 53 54rust_library_rlib { 55 name: "liblibfdt_nostd", 56 defaults: ["liblibfdt_defaults"], 57 no_stdlibs: true, 58 prefer_rlib: true, 59 stdlibs: [ 60 "libcore.rust_sysroot", 61 ], 62 whole_static_libs: [ 63 "libfdt_baremetal", 64 ], 65} 66 67rust_test { 68 name: "liblibfdt.integration_test", 69 crate_name: "libfdt_test", 70 defaults: ["avf_build_flags_rust"], 71 srcs: ["tests/api_test.rs"], 72 test_suites: ["general-tests"], 73 data: [ 74 ":fdt_test_tree_one_memory_range_dtb", 75 ":fdt_test_tree_multiple_memory_ranges_dtb", 76 ":fdt_test_tree_empty_memory_range_dtb", 77 ":fdt_test_tree_no_memory_node_dtb", 78 ":fdt_test_tree_phandle_dtb", 79 ], 80 prefer_rlib: true, 81 rustlibs: [ 82 "libcstr", 83 "liblibfdt", 84 ], 85} 86 87genrule { 88 name: "fdt_test_tree_one_memory_range_dtb", 89 tools: ["dtc"], 90 srcs: [ 91 "tests/data/test_tree_one_memory_range.dts", 92 "tests/data/test_tree_no_memory_node.dts", 93 ], 94 cmd: "$(location dtc) -I dts -O dtb $(location tests/data/test_tree_one_memory_range.dts) -o $(out)", 95 out: ["data/test_tree_one_memory_range.dtb"], 96} 97 98genrule { 99 name: "fdt_test_tree_multiple_memory_ranges_dtb", 100 tools: ["dtc"], 101 srcs: [ 102 "tests/data/test_tree_multiple_memory_ranges.dts", 103 "tests/data/test_tree_no_memory_node.dts", 104 ], 105 cmd: "$(location dtc) -I dts -O dtb $(location tests/data/test_tree_multiple_memory_ranges.dts) -o $(out)", 106 out: ["data/test_tree_multiple_memory_ranges.dtb"], 107} 108 109genrule { 110 name: "fdt_test_tree_empty_memory_range_dtb", 111 tools: ["dtc"], 112 srcs: [ 113 "tests/data/test_tree_empty_memory_range.dts", 114 "tests/data/test_tree_no_memory_node.dts", 115 ], 116 cmd: "$(location dtc) -I dts -O dtb $(location tests/data/test_tree_empty_memory_range.dts) -o $(out)", 117 out: ["data/test_tree_empty_memory_range.dtb"], 118} 119 120genrule { 121 name: "fdt_test_tree_no_memory_node_dtb", 122 defaults: ["dts_to_dtb"], 123 srcs: ["tests/data/test_tree_no_memory_node.dts"], 124 out: ["data/test_tree_no_memory_node.dtb"], 125} 126 127genrule { 128 name: "fdt_test_tree_phandle_dtb", 129 defaults: ["dts_to_dtb"], 130 srcs: ["tests/data/test_tree_phandle.dts"], 131 out: ["data/test_tree_phandle.dtb"], 132} 133