blob: 09f288dcaaf43e535fe154c4c67d1634d31b2c1d [file] [log] [blame]
David Brazdil1baa9a92022-06-28 14:47:50 +01001package {
2 default_applicable_licenses: ["Android-Apache-2.0"],
3}
4
5rust_bindgen {
6 name: "liblibfdt_bindgen",
7 crate_name: "libfdt_bindgen",
Nikita Ioffeda1b2732023-09-04 13:46:56 +01008 defaults: ["avf_build_flags_rust"],
David Brazdil1baa9a92022-06-28 14:47:50 +01009 wrapper_src: "bindgen/fdt.h",
10 source_stem: "bindings",
11 bindgen_flags: [
David Brazdil1baa9a92022-06-28 14:47:50 +010012 "--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 ],
Ivan Lozano6561e342024-08-07 14:16:39 +000019 dylib: {
20 enabled: false,
21 },
Pierre-Clément Tosi2b8936c2024-10-01 17:45:16 +010022 header_libs: [
David Brazdil1baa9a92022-06-28 14:47:50 +010023 "libfdt",
24 ],
25 apex_available: ["com.android.virt"],
26}
27
Pierre-Clément Tosi992c2bb2024-10-02 10:37:42 +010028rust_defaults {
29 name: "liblibfdt_defaults",
David Brazdil1baa9a92022-06-28 14:47:50 +010030 crate_name: "libfdt",
Nikita Ioffeda1b2732023-09-04 13:46:56 +010031 defaults: ["avf_build_flags_rust"],
David Brazdil1baa9a92022-06-28 14:47:50 +010032 srcs: [
33 "src/lib.rs",
34 ":liblibfdt_bindgen",
35 ],
36 edition: "2021",
David Brazdil1baa9a92022-06-28 14:47:50 +010037 rustlibs: [
Pierre-Clément Tosi1bf532b2023-11-13 11:06:20 +000038 "libcstr",
David Brazdil1baa9a92022-06-28 14:47:50 +010039 "liblibfdt_bindgen",
Pierre-Clément Tosi566723a2024-01-24 13:01:54 +000040 "libstatic_assertions",
Pierre-Clément Tosic27c4272023-05-19 15:46:26 +000041 "libzerocopy_nostd",
David Brazdil1baa9a92022-06-28 14:47:50 +010042 ],
Pierre-Clément Tosi992c2bb2024-10-02 10:37:42 +010043}
44
45rust_library_rlib {
46 name: "liblibfdt",
47 defaults: ["liblibfdt_defaults"],
David Brazdil1baa9a92022-06-28 14:47:50 +010048 whole_static_libs: [
49 "libfdt",
50 ],
51 apex_available: ["com.android.virt"],
52}
Alice Wang9d4df702023-05-25 14:14:12 +000053
Pierre-Clément Tosi992c2bb2024-10-02 10:37:42 +010054rust_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
Alice Wang9d4df702023-05-25 14:14:12 +000067rust_test {
68 name: "liblibfdt.integration_test",
69 crate_name: "libfdt_test",
Nikita Ioffeda1b2732023-09-04 13:46:56 +010070 defaults: ["avf_build_flags_rust"],
Alan Stokesd7aea452024-03-14 14:20:04 +000071 srcs: ["tests/api_test.rs"],
Alice Wang9d4df702023-05-25 14:14:12 +000072 test_suites: ["general-tests"],
73 data: [
Alice Wang2422bdc2023-06-12 08:37:55 +000074 ":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",
Jaewan Kim17ba7a32023-10-19 13:25:15 +090078 ":fdt_test_tree_phandle_dtb",
Alice Wang9d4df702023-05-25 14:14:12 +000079 ],
80 prefer_rlib: true,
81 rustlibs: [
Pierre-Clément Tosi1bf532b2023-11-13 11:06:20 +000082 "libcstr",
Alice Wang9d4df702023-05-25 14:14:12 +000083 "liblibfdt",
84 ],
85}
86
87genrule {
Alice Wang2422bdc2023-06-12 08:37:55 +000088 name: "fdt_test_tree_one_memory_range_dtb",
Cole Faustcad8d5e2023-11-20 15:09:27 -080089 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)",
Alice Wang2422bdc2023-06-12 08:37:55 +000095 out: ["data/test_tree_one_memory_range.dtb"],
96}
97
98genrule {
99 name: "fdt_test_tree_multiple_memory_ranges_dtb",
Cole Faustcad8d5e2023-11-20 15:09:27 -0800100 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)",
Alice Wang2422bdc2023-06-12 08:37:55 +0000106 out: ["data/test_tree_multiple_memory_ranges.dtb"],
107}
108
109genrule {
110 name: "fdt_test_tree_empty_memory_range_dtb",
Cole Faustcad8d5e2023-11-20 15:09:27 -0800111 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)",
Alice Wang2422bdc2023-06-12 08:37:55 +0000117 out: ["data/test_tree_empty_memory_range.dtb"],
118}
119
120genrule {
121 name: "fdt_test_tree_no_memory_node_dtb",
Jaewan Kim0df5fb12023-09-24 23:33:54 +0900122 defaults: ["dts_to_dtb"],
Alice Wang2422bdc2023-06-12 08:37:55 +0000123 srcs: ["tests/data/test_tree_no_memory_node.dts"],
124 out: ["data/test_tree_no_memory_node.dtb"],
Alice Wang9d4df702023-05-25 14:14:12 +0000125}
Jaewan Kim17ba7a32023-10-19 13:25:15 +0900126
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}