xref: /aosp_15_r20/tools/netsim/Android.bp (revision cf78ab8cffb8fc9207af348f23af247fb04370a6)
1*cf78ab8cSAndroid Build Coastguard Worker// Copyright 2022 The Android Open Source Project
2*cf78ab8cSAndroid Build Coastguard Worker//
3*cf78ab8cSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*cf78ab8cSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*cf78ab8cSAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*cf78ab8cSAndroid Build Coastguard Worker//
7*cf78ab8cSAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
8*cf78ab8cSAndroid Build Coastguard Worker//
9*cf78ab8cSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*cf78ab8cSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*cf78ab8cSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*cf78ab8cSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*cf78ab8cSAndroid Build Coastguard Worker// limitations under the License.
14*cf78ab8cSAndroid Build Coastguard Worker
15*cf78ab8cSAndroid Build Coastguard Workerpackage {
16*cf78ab8cSAndroid Build Coastguard Worker    default_visibility: [
17*cf78ab8cSAndroid Build Coastguard Worker        "//tools/netsim:__subpackages__",
18*cf78ab8cSAndroid Build Coastguard Worker        "//device/google/cuttlefish/build:__subpackages__",
19*cf78ab8cSAndroid Build Coastguard Worker    ],
20*cf78ab8cSAndroid Build Coastguard Worker    default_applicable_licenses: ["tools_netsim_license"],
21*cf78ab8cSAndroid Build Coastguard Worker}
22*cf78ab8cSAndroid Build Coastguard Worker
23*cf78ab8cSAndroid Build Coastguard Worker// Added automatically by a large-scale-change
24*cf78ab8cSAndroid Build Coastguard Worker// See: http://go/android-license-faq
25*cf78ab8cSAndroid Build Coastguard Workerlicense {
26*cf78ab8cSAndroid Build Coastguard Worker    name: "tools_netsim_license",
27*cf78ab8cSAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
28*cf78ab8cSAndroid Build Coastguard Worker    license_kinds: [
29*cf78ab8cSAndroid Build Coastguard Worker        "SPDX-license-identifier-Apache-2.0",
30*cf78ab8cSAndroid Build Coastguard Worker    ],
31*cf78ab8cSAndroid Build Coastguard Worker    license_text: [
32*cf78ab8cSAndroid Build Coastguard Worker        "LICENSE",
33*cf78ab8cSAndroid Build Coastguard Worker    ],
34*cf78ab8cSAndroid Build Coastguard Worker}
35*cf78ab8cSAndroid Build Coastguard Worker
36*cf78ab8cSAndroid Build Coastguard Workercc_defaults {
37*cf78ab8cSAndroid Build Coastguard Worker    name: "netsim_defaults",
38*cf78ab8cSAndroid Build Coastguard Worker    cflags: [
39*cf78ab8cSAndroid Build Coastguard Worker        "-Wno-unused-parameter",
40*cf78ab8cSAndroid Build Coastguard Worker        "-g", // Produce debugging information.
41*cf78ab8cSAndroid Build Coastguard Worker    ],
42*cf78ab8cSAndroid Build Coastguard Worker    ldflags: ["-rdynamic"], // Allow obtaining backtraces for debugging.
43*cf78ab8cSAndroid Build Coastguard Worker    local_include_dirs: [
44*cf78ab8cSAndroid Build Coastguard Worker        "src",
45*cf78ab8cSAndroid Build Coastguard Worker    ],
46*cf78ab8cSAndroid Build Coastguard Worker    shared_libs: [
47*cf78ab8cSAndroid Build Coastguard Worker        "libgrpc++",
48*cf78ab8cSAndroid Build Coastguard Worker        "libprotobuf-cpp-full",
49*cf78ab8cSAndroid Build Coastguard Worker    ],
50*cf78ab8cSAndroid Build Coastguard Worker    generated_headers: [
51*cf78ab8cSAndroid Build Coastguard Worker        "FrontendStub_h",
52*cf78ab8cSAndroid Build Coastguard Worker    ],
53*cf78ab8cSAndroid Build Coastguard Worker    generated_sources: [
54*cf78ab8cSAndroid Build Coastguard Worker        "FrontendStub_cc",
55*cf78ab8cSAndroid Build Coastguard Worker    ],
56*cf78ab8cSAndroid Build Coastguard Worker}
57*cf78ab8cSAndroid Build Coastguard Worker
58*cf78ab8cSAndroid Build Coastguard Workerrust_defaults {
59*cf78ab8cSAndroid Build Coastguard Worker    name: "libnetsim_daemon_defaults",
60*cf78ab8cSAndroid Build Coastguard Worker    features: ["cuttlefish"],
61*cf78ab8cSAndroid Build Coastguard Worker    rlibs: [
62*cf78ab8cSAndroid Build Coastguard Worker        "libbytes",
63*cf78ab8cSAndroid Build Coastguard Worker        "libclap",
64*cf78ab8cSAndroid Build Coastguard Worker        "libcxx",
65*cf78ab8cSAndroid Build Coastguard Worker        "libanyhow",
66*cf78ab8cSAndroid Build Coastguard Worker        "libdata_encoding",
67*cf78ab8cSAndroid Build Coastguard Worker        "libfutures",
68*cf78ab8cSAndroid Build Coastguard Worker        "libfutures_channel",
69*cf78ab8cSAndroid Build Coastguard Worker        "libfutures_executor",
70*cf78ab8cSAndroid Build Coastguard Worker        "libfutures_util",
71*cf78ab8cSAndroid Build Coastguard Worker        "libglam",
72*cf78ab8cSAndroid Build Coastguard Worker        "libgrpcio",
73*cf78ab8cSAndroid Build Coastguard Worker        "liblibc",
74*cf78ab8cSAndroid Build Coastguard Worker        "libnetsim_proto",
75*cf78ab8cSAndroid Build Coastguard Worker        "libhttp",
76*cf78ab8cSAndroid Build Coastguard Worker        "libnetsim_common",
77*cf78ab8cSAndroid Build Coastguard Worker        "libnetsim_packets",
78*cf78ab8cSAndroid Build Coastguard Worker        "libpdl_runtime",
79*cf78ab8cSAndroid Build Coastguard Worker        "libpica",
80*cf78ab8cSAndroid Build Coastguard Worker        "libprotobuf",
81*cf78ab8cSAndroid Build Coastguard Worker        "libprotobuf_json_mapping",
82*cf78ab8cSAndroid Build Coastguard Worker        "librand",
83*cf78ab8cSAndroid Build Coastguard Worker        "libregex",
84*cf78ab8cSAndroid Build Coastguard Worker        "libthiserror",
85*cf78ab8cSAndroid Build Coastguard Worker        "libtokio",
86*cf78ab8cSAndroid Build Coastguard Worker        "libtokio_stream",
87*cf78ab8cSAndroid Build Coastguard Worker        "libtungstenite",
88*cf78ab8cSAndroid Build Coastguard Worker        "liblog_rust",
89*cf78ab8cSAndroid Build Coastguard Worker        "libopenssl",
90*cf78ab8cSAndroid Build Coastguard Worker    ],
91*cf78ab8cSAndroid Build Coastguard Worker    static_libs: ["libgrpc_wrap"],
92*cf78ab8cSAndroid Build Coastguard Worker    srcs: [
93*cf78ab8cSAndroid Build Coastguard Worker        "rust/daemon/src/lib.rs",
94*cf78ab8cSAndroid Build Coastguard Worker    ],
95*cf78ab8cSAndroid Build Coastguard Worker}
96*cf78ab8cSAndroid Build Coastguard Worker
97*cf78ab8cSAndroid Build Coastguard Workerrust_ffi_host_static {
98*cf78ab8cSAndroid Build Coastguard Worker    name: "libnetsim_daemon",
99*cf78ab8cSAndroid Build Coastguard Worker    crate_name: "netsim_daemon",
100*cf78ab8cSAndroid Build Coastguard Worker    defaults: ["libnetsim_daemon_defaults"],
101*cf78ab8cSAndroid Build Coastguard Worker}
102*cf78ab8cSAndroid Build Coastguard Worker
103*cf78ab8cSAndroid Build Coastguard Workerrust_test_host {
104*cf78ab8cSAndroid Build Coastguard Worker    name: "libnetsim_daemon_tests",
105*cf78ab8cSAndroid Build Coastguard Worker    defaults: ["libnetsim_daemon_defaults"],
106*cf78ab8cSAndroid Build Coastguard Worker    test_suites: ["general_tests"],
107*cf78ab8cSAndroid Build Coastguard Worker}
108*cf78ab8cSAndroid Build Coastguard Worker
109*cf78ab8cSAndroid Build Coastguard Workergenrule {
110*cf78ab8cSAndroid Build Coastguard Worker    name: "netsim_daemon_cc",
111*cf78ab8cSAndroid Build Coastguard Worker    tools: ["cxxbridge"],
112*cf78ab8cSAndroid Build Coastguard Worker    cmd: "$(location cxxbridge) $(in) --cfg feature=\\\"cuttlefish\\\" >> $(out)",
113*cf78ab8cSAndroid Build Coastguard Worker    srcs: ["rust/daemon/src/ffi.rs"],
114*cf78ab8cSAndroid Build Coastguard Worker    out: ["netsim-daemon/src/ffi.rs.cc"],
115*cf78ab8cSAndroid Build Coastguard Worker}
116*cf78ab8cSAndroid Build Coastguard Worker
117*cf78ab8cSAndroid Build Coastguard Workergenrule {
118*cf78ab8cSAndroid Build Coastguard Worker    name: "netsim_daemon_h",
119*cf78ab8cSAndroid Build Coastguard Worker    tools: ["cxxbridge"],
120*cf78ab8cSAndroid Build Coastguard Worker    cmd: "$(location cxxbridge) $(in) --cfg feature=\\\"cuttlefish\\\" --header >> $(out)",
121*cf78ab8cSAndroid Build Coastguard Worker    srcs: ["rust/daemon/src/ffi.rs"],
122*cf78ab8cSAndroid Build Coastguard Worker    out: ["netsim-daemon/src/ffi.rs.h"],
123*cf78ab8cSAndroid Build Coastguard Worker}
124*cf78ab8cSAndroid Build Coastguard Worker
125*cf78ab8cSAndroid Build Coastguard Workergenrule {
126*cf78ab8cSAndroid Build Coastguard Worker    name: "netsim_cli_cc",
127*cf78ab8cSAndroid Build Coastguard Worker    tools: ["cxxbridge"],
128*cf78ab8cSAndroid Build Coastguard Worker    cmd: "$(location cxxbridge) $(in) >> $(out)",
129*cf78ab8cSAndroid Build Coastguard Worker    srcs: ["rust/cli/src/ffi.rs"],
130*cf78ab8cSAndroid Build Coastguard Worker    out: ["netsim-cli/src/ffi.rs.cc"],
131*cf78ab8cSAndroid Build Coastguard Worker}
132*cf78ab8cSAndroid Build Coastguard Worker
133*cf78ab8cSAndroid Build Coastguard Workergenrule {
134*cf78ab8cSAndroid Build Coastguard Worker    name: "netsim_cli_h",
135*cf78ab8cSAndroid Build Coastguard Worker    tools: ["cxxbridge"],
136*cf78ab8cSAndroid Build Coastguard Worker    cmd: "$(location cxxbridge) $(in) --header >> $(out)",
137*cf78ab8cSAndroid Build Coastguard Worker    srcs: ["rust/cli/src/ffi.rs"],
138*cf78ab8cSAndroid Build Coastguard Worker    out: ["netsim-cli/src/ffi.rs.h"],
139*cf78ab8cSAndroid Build Coastguard Worker}
140*cf78ab8cSAndroid Build Coastguard Worker
141*cf78ab8cSAndroid Build Coastguard Workergenrule {
142*cf78ab8cSAndroid Build Coastguard Worker    name: "netsim_netlink_rust_gen",
143*cf78ab8cSAndroid Build Coastguard Worker    defaults: ["pdl_rust_generator_defaults"],
144*cf78ab8cSAndroid Build Coastguard Worker    srcs: ["pdl/netlink.pdl"],
145*cf78ab8cSAndroid Build Coastguard Worker    out: ["netlink_packets.rs"],
146*cf78ab8cSAndroid Build Coastguard Worker}
147*cf78ab8cSAndroid Build Coastguard Worker
148*cf78ab8cSAndroid Build Coastguard Workergenrule {
149*cf78ab8cSAndroid Build Coastguard Worker    name: "netsim_mac80211_hwsim_rust_gen",
150*cf78ab8cSAndroid Build Coastguard Worker    defaults: ["pdl_rust_generator_defaults"],
151*cf78ab8cSAndroid Build Coastguard Worker    srcs: ["pdl/mac80211_hwsim.pdl"],
152*cf78ab8cSAndroid Build Coastguard Worker    out: ["mac80211_hwsim_packets.rs"],
153*cf78ab8cSAndroid Build Coastguard Worker}
154*cf78ab8cSAndroid Build Coastguard Worker
155*cf78ab8cSAndroid Build Coastguard Workergenrule {
156*cf78ab8cSAndroid Build Coastguard Worker    name: "netsim_ieee80211_rust_gen",
157*cf78ab8cSAndroid Build Coastguard Worker    defaults: ["pdl_rust_generator_defaults"],
158*cf78ab8cSAndroid Build Coastguard Worker    srcs: ["pdl/ieee80211.pdl"],
159*cf78ab8cSAndroid Build Coastguard Worker    out: ["ieee80211_packets.rs"],
160*cf78ab8cSAndroid Build Coastguard Worker}
161*cf78ab8cSAndroid Build Coastguard Worker
162*cf78ab8cSAndroid Build Coastguard Workergenrule {
163*cf78ab8cSAndroid Build Coastguard Worker    name: "netsim_llc_rust_gen",
164*cf78ab8cSAndroid Build Coastguard Worker    defaults: ["pdl_rust_generator_defaults"],
165*cf78ab8cSAndroid Build Coastguard Worker    srcs: ["pdl/llc.pdl"],
166*cf78ab8cSAndroid Build Coastguard Worker    out: ["llc_packets.rs"],
167*cf78ab8cSAndroid Build Coastguard Worker}
168*cf78ab8cSAndroid Build Coastguard Worker
169*cf78ab8cSAndroid Build Coastguard Workergenrule {
170*cf78ab8cSAndroid Build Coastguard Worker    name: "netsim_arp_rust_gen",
171*cf78ab8cSAndroid Build Coastguard Worker    defaults: ["pdl_rust_generator_defaults"],
172*cf78ab8cSAndroid Build Coastguard Worker    srcs: ["pdl/arp.pdl"],
173*cf78ab8cSAndroid Build Coastguard Worker    out: ["arp_packets.rs"],
174*cf78ab8cSAndroid Build Coastguard Worker}
175*cf78ab8cSAndroid Build Coastguard Worker
176*cf78ab8cSAndroid Build Coastguard Workercc_library_host_static {
177*cf78ab8cSAndroid Build Coastguard Worker    name: "lib-netsim",
178*cf78ab8cSAndroid Build Coastguard Worker    defaults: ["netsim_defaults"],
179*cf78ab8cSAndroid Build Coastguard Worker    srcs: [
180*cf78ab8cSAndroid Build Coastguard Worker        "src/backend/grpc_client.cc",
181*cf78ab8cSAndroid Build Coastguard Worker        "src/hci/bluetooth_facade.cc",
182*cf78ab8cSAndroid Build Coastguard Worker        "src/hci/hci_packet_transport.cc",
183*cf78ab8cSAndroid Build Coastguard Worker        "src/hci/rust_device.cc",
184*cf78ab8cSAndroid Build Coastguard Worker        "src/util/crash_report.cc",
185*cf78ab8cSAndroid Build Coastguard Worker        "src/util/ini_file.cc",
186*cf78ab8cSAndroid Build Coastguard Worker        "src/util/log.cc",
187*cf78ab8cSAndroid Build Coastguard Worker        "src/util/os_utils.cc",
188*cf78ab8cSAndroid Build Coastguard Worker        "src/util/string_utils.cc",
189*cf78ab8cSAndroid Build Coastguard Worker    ],
190*cf78ab8cSAndroid Build Coastguard Worker    generated_headers: [
191*cf78ab8cSAndroid Build Coastguard Worker        "cxx-bridge-header",
192*cf78ab8cSAndroid Build Coastguard Worker        "netsim_daemon_h",
193*cf78ab8cSAndroid Build Coastguard Worker        "PacketStreamerStub_h",
194*cf78ab8cSAndroid Build Coastguard Worker    ],
195*cf78ab8cSAndroid Build Coastguard Worker    generated_sources: [
196*cf78ab8cSAndroid Build Coastguard Worker        "netsim_daemon_cc",
197*cf78ab8cSAndroid Build Coastguard Worker        "PacketStreamerStub_cc",
198*cf78ab8cSAndroid Build Coastguard Worker    ],
199*cf78ab8cSAndroid Build Coastguard Worker    shared_libs: [
200*cf78ab8cSAndroid Build Coastguard Worker        "libbase",
201*cf78ab8cSAndroid Build Coastguard Worker        "libgrpc++",
202*cf78ab8cSAndroid Build Coastguard Worker        "libcrypto",
203*cf78ab8cSAndroid Build Coastguard Worker        "libunwindstack",
204*cf78ab8cSAndroid Build Coastguard Worker    ],
205*cf78ab8cSAndroid Build Coastguard Worker    static_libs: [
206*cf78ab8cSAndroid Build Coastguard Worker        "breakpad_client",
207*cf78ab8cSAndroid Build Coastguard Worker        "libjsoncpp",
208*cf78ab8cSAndroid Build Coastguard Worker        "libprotobuf-cpp-full",
209*cf78ab8cSAndroid Build Coastguard Worker        "libscriptedbeaconpayload-protos-lite",
210*cf78ab8cSAndroid Build Coastguard Worker        "lib-netsimd-proto",
211*cf78ab8cSAndroid Build Coastguard Worker    ],
212*cf78ab8cSAndroid Build Coastguard Worker    whole_static_libs: [
213*cf78ab8cSAndroid Build Coastguard Worker        "libbt-rootcanal",
214*cf78ab8cSAndroid Build Coastguard Worker    ],
215*cf78ab8cSAndroid Build Coastguard Worker}
216*cf78ab8cSAndroid Build Coastguard Worker
217*cf78ab8cSAndroid Build Coastguard Workernetsim_ui_modules = [
218*cf78ab8cSAndroid Build Coastguard Worker    "netsim_ui_index.html",
219*cf78ab8cSAndroid Build Coastguard Worker    "netsim_ui_js_cube-sprite.js",
220*cf78ab8cSAndroid Build Coastguard Worker    "netsim_ui_js_customize-map-button.js",
221*cf78ab8cSAndroid Build Coastguard Worker    "netsim_ui_js_device-dragzone.js",
222*cf78ab8cSAndroid Build Coastguard Worker    "netsim_ui_js_device-dropzone.js",
223*cf78ab8cSAndroid Build Coastguard Worker    "netsim_ui_js_device-info.js",
224*cf78ab8cSAndroid Build Coastguard Worker    "netsim_ui_js_device-list.js",
225*cf78ab8cSAndroid Build Coastguard Worker    "netsim_ui_js_device-map.js",
226*cf78ab8cSAndroid Build Coastguard Worker    "netsim_ui_js_device-observer.js",
227*cf78ab8cSAndroid Build Coastguard Worker    "netsim_ui_js_license-info.js",
228*cf78ab8cSAndroid Build Coastguard Worker    "netsim_ui_js_navigation-bar.js",
229*cf78ab8cSAndroid Build Coastguard Worker    "netsim_ui_js_netsim-app.js",
230*cf78ab8cSAndroid Build Coastguard Worker    "netsim_ui_js_packet-info.js",
231*cf78ab8cSAndroid Build Coastguard Worker    "netsim_ui_js_pyramid-sprite.js",
232*cf78ab8cSAndroid Build Coastguard Worker    "netsim_ui_tslib",
233*cf78ab8cSAndroid Build Coastguard Worker    "netsim_ui_assets_grid-background.svg",
234*cf78ab8cSAndroid Build Coastguard Worker    "netsim_ui_assets_hexagonal-background.png",
235*cf78ab8cSAndroid Build Coastguard Worker    "netsim_ui_assets_netsim-logo-b.svg",
236*cf78ab8cSAndroid Build Coastguard Worker    "netsim_ui_assets_netsim-logo.svg",
237*cf78ab8cSAndroid Build Coastguard Worker    "netsim_ui_assets_polar-background.svg",
238*cf78ab8cSAndroid Build Coastguard Worker]
239*cf78ab8cSAndroid Build Coastguard Worker
240*cf78ab8cSAndroid Build Coastguard Workercc_binary_host {
241*cf78ab8cSAndroid Build Coastguard Worker    name: "netsimd",
242*cf78ab8cSAndroid Build Coastguard Worker    defaults: ["netsim_defaults"],
243*cf78ab8cSAndroid Build Coastguard Worker    srcs: [
244*cf78ab8cSAndroid Build Coastguard Worker        "rust/netsimd.cc",
245*cf78ab8cSAndroid Build Coastguard Worker    ],
246*cf78ab8cSAndroid Build Coastguard Worker    generated_headers: [
247*cf78ab8cSAndroid Build Coastguard Worker        "cxx-bridge-header",
248*cf78ab8cSAndroid Build Coastguard Worker        "netsim_daemon_h",
249*cf78ab8cSAndroid Build Coastguard Worker    ],
250*cf78ab8cSAndroid Build Coastguard Worker    shared_libs: [
251*cf78ab8cSAndroid Build Coastguard Worker        "libbase",
252*cf78ab8cSAndroid Build Coastguard Worker        "libgrpc++",
253*cf78ab8cSAndroid Build Coastguard Worker        "libcap",
254*cf78ab8cSAndroid Build Coastguard Worker        "libcrypto",
255*cf78ab8cSAndroid Build Coastguard Worker        "libssl",
256*cf78ab8cSAndroid Build Coastguard Worker        "libunwindstack",
257*cf78ab8cSAndroid Build Coastguard Worker        "libz", // TODO: Remove for native rust binary
258*cf78ab8cSAndroid Build Coastguard Worker    ],
259*cf78ab8cSAndroid Build Coastguard Worker    static_libs: [
260*cf78ab8cSAndroid Build Coastguard Worker        "breakpad_client",
261*cf78ab8cSAndroid Build Coastguard Worker        "libprotobuf-cpp-full",
262*cf78ab8cSAndroid Build Coastguard Worker        "libscriptedbeaconpayload-protos-lite", // TODO: Remove this after using pdl library.
263*cf78ab8cSAndroid Build Coastguard Worker        "lib-netsimd-proto",
264*cf78ab8cSAndroid Build Coastguard Worker        "lib-netsim",
265*cf78ab8cSAndroid Build Coastguard Worker        "lib-netsim-frontend-proto",
266*cf78ab8cSAndroid Build Coastguard Worker        "libgrpc_wrap",
267*cf78ab8cSAndroid Build Coastguard Worker        "librootcanal_rs",
268*cf78ab8cSAndroid Build Coastguard Worker    ],
269*cf78ab8cSAndroid Build Coastguard Worker    whole_static_libs: [
270*cf78ab8cSAndroid Build Coastguard Worker        "libnetsim_daemon",
271*cf78ab8cSAndroid Build Coastguard Worker        "libbt-rootcanal",
272*cf78ab8cSAndroid Build Coastguard Worker    ],
273*cf78ab8cSAndroid Build Coastguard Worker    required: netsim_ui_modules,
274*cf78ab8cSAndroid Build Coastguard Worker    strip: {
275*cf78ab8cSAndroid Build Coastguard Worker        keep_symbols_and_debug_frame: true,
276*cf78ab8cSAndroid Build Coastguard Worker    },
277*cf78ab8cSAndroid Build Coastguard Worker}
278*cf78ab8cSAndroid Build Coastguard Worker
279*cf78ab8cSAndroid Build Coastguard Workercc_test_host {
280*cf78ab8cSAndroid Build Coastguard Worker    name: "netsim-test",
281*cf78ab8cSAndroid Build Coastguard Worker    defaults: ["netsim_defaults"],
282*cf78ab8cSAndroid Build Coastguard Worker    srcs: [
283*cf78ab8cSAndroid Build Coastguard Worker        "src/util/ini_file_test.cc",
284*cf78ab8cSAndroid Build Coastguard Worker        "src/util/os_utils_test.cc",
285*cf78ab8cSAndroid Build Coastguard Worker        "src/util/string_utils_test.cc",
286*cf78ab8cSAndroid Build Coastguard Worker    ],
287*cf78ab8cSAndroid Build Coastguard Worker    generated_headers: [
288*cf78ab8cSAndroid Build Coastguard Worker        "cxx-bridge-header",
289*cf78ab8cSAndroid Build Coastguard Worker        "netsim_daemon_h",
290*cf78ab8cSAndroid Build Coastguard Worker    ],
291*cf78ab8cSAndroid Build Coastguard Worker    shared_libs: [
292*cf78ab8cSAndroid Build Coastguard Worker        "libgrpc++",
293*cf78ab8cSAndroid Build Coastguard Worker        "libcrypto",
294*cf78ab8cSAndroid Build Coastguard Worker        "libbase",
295*cf78ab8cSAndroid Build Coastguard Worker        "libunwindstack",
296*cf78ab8cSAndroid Build Coastguard Worker        "libssl",
297*cf78ab8cSAndroid Build Coastguard Worker        "libz", // TODO: Remove for native rust binary
298*cf78ab8cSAndroid Build Coastguard Worker    ],
299*cf78ab8cSAndroid Build Coastguard Worker    static_libs: [
300*cf78ab8cSAndroid Build Coastguard Worker        "breakpad_client",
301*cf78ab8cSAndroid Build Coastguard Worker        "libgrpc_wrap",
302*cf78ab8cSAndroid Build Coastguard Worker        "libjsoncpp",
303*cf78ab8cSAndroid Build Coastguard Worker        "libprotobuf-cpp-full",
304*cf78ab8cSAndroid Build Coastguard Worker        "libscriptedbeaconpayload-protos-lite", // TODO: Remove this after using pdl library.
305*cf78ab8cSAndroid Build Coastguard Worker        "lib-netsim-frontend-proto",
306*cf78ab8cSAndroid Build Coastguard Worker        "lib-netsim",
307*cf78ab8cSAndroid Build Coastguard Worker        "lib-netsimd-proto",
308*cf78ab8cSAndroid Build Coastguard Worker        "librootcanal_rs",
309*cf78ab8cSAndroid Build Coastguard Worker    ],
310*cf78ab8cSAndroid Build Coastguard Worker    whole_static_libs: [
311*cf78ab8cSAndroid Build Coastguard Worker        "libnetsim_daemon",
312*cf78ab8cSAndroid Build Coastguard Worker        "libbt-rootcanal",
313*cf78ab8cSAndroid Build Coastguard Worker    ],
314*cf78ab8cSAndroid Build Coastguard Worker}
315*cf78ab8cSAndroid Build Coastguard Worker
316*cf78ab8cSAndroid Build Coastguard Workerrust_library_host {
317*cf78ab8cSAndroid Build Coastguard Worker    name: "libnetsim_proto",
318*cf78ab8cSAndroid Build Coastguard Worker    features: ["cuttlefish"],
319*cf78ab8cSAndroid Build Coastguard Worker    crate_name: "netsim_proto",
320*cf78ab8cSAndroid Build Coastguard Worker    srcs: ["rust/proto/src/lib.rs"],
321*cf78ab8cSAndroid Build Coastguard Worker    rustlibs: [
322*cf78ab8cSAndroid Build Coastguard Worker        "libprotobuf",
323*cf78ab8cSAndroid Build Coastguard Worker        "libgrpcio",
324*cf78ab8cSAndroid Build Coastguard Worker    ],
325*cf78ab8cSAndroid Build Coastguard Worker}
326*cf78ab8cSAndroid Build Coastguard Worker
327*cf78ab8cSAndroid Build Coastguard Workerrust_defaults {
328*cf78ab8cSAndroid Build Coastguard Worker    name: "libnetsim_common_defaults",
329*cf78ab8cSAndroid Build Coastguard Worker    srcs: ["rust/common/src/lib.rs"],
330*cf78ab8cSAndroid Build Coastguard Worker    rustlibs: [
331*cf78ab8cSAndroid Build Coastguard Worker        "libanyhow",
332*cf78ab8cSAndroid Build Coastguard Worker        "libchrono",
333*cf78ab8cSAndroid Build Coastguard Worker        "librand",
334*cf78ab8cSAndroid Build Coastguard Worker        "liblibc",
335*cf78ab8cSAndroid Build Coastguard Worker        "liblog_rust",
336*cf78ab8cSAndroid Build Coastguard Worker        "libenv_logger",
337*cf78ab8cSAndroid Build Coastguard Worker        "libzip",
338*cf78ab8cSAndroid Build Coastguard Worker    ],
339*cf78ab8cSAndroid Build Coastguard Worker}
340*cf78ab8cSAndroid Build Coastguard Worker
341*cf78ab8cSAndroid Build Coastguard Workerrust_library_host {
342*cf78ab8cSAndroid Build Coastguard Worker    name: "libnetsim_common",
343*cf78ab8cSAndroid Build Coastguard Worker    crate_name: "netsim_common",
344*cf78ab8cSAndroid Build Coastguard Worker    defaults: ["libnetsim_common_defaults"],
345*cf78ab8cSAndroid Build Coastguard Worker}
346*cf78ab8cSAndroid Build Coastguard Worker
347*cf78ab8cSAndroid Build Coastguard Workerrust_defaults {
348*cf78ab8cSAndroid Build Coastguard Worker    name: "libnetsim_packets_defaults",
349*cf78ab8cSAndroid Build Coastguard Worker    srcs: [
350*cf78ab8cSAndroid Build Coastguard Worker        "rust/packets/src/lib.rs",
351*cf78ab8cSAndroid Build Coastguard Worker        ":netsim_netlink_rust_gen",
352*cf78ab8cSAndroid Build Coastguard Worker        ":netsim_mac80211_hwsim_rust_gen",
353*cf78ab8cSAndroid Build Coastguard Worker        ":netsim_ieee80211_rust_gen",
354*cf78ab8cSAndroid Build Coastguard Worker        ":netsim_llc_rust_gen",
355*cf78ab8cSAndroid Build Coastguard Worker        ":netsim_arp_rust_gen",
356*cf78ab8cSAndroid Build Coastguard Worker        ":rootcanal_link_layer_packets_rust_gen",
357*cf78ab8cSAndroid Build Coastguard Worker    ],
358*cf78ab8cSAndroid Build Coastguard Worker    rustlibs: [
359*cf78ab8cSAndroid Build Coastguard Worker        "libanyhow",
360*cf78ab8cSAndroid Build Coastguard Worker        "libbytes",
361*cf78ab8cSAndroid Build Coastguard Worker        "libpdl_runtime",
362*cf78ab8cSAndroid Build Coastguard Worker    ],
363*cf78ab8cSAndroid Build Coastguard Worker}
364*cf78ab8cSAndroid Build Coastguard Worker
365*cf78ab8cSAndroid Build Coastguard Workerrust_library_host {
366*cf78ab8cSAndroid Build Coastguard Worker    name: "libnetsim_packets",
367*cf78ab8cSAndroid Build Coastguard Worker    crate_name: "netsim_packets",
368*cf78ab8cSAndroid Build Coastguard Worker    defaults: ["libnetsim_packets_defaults"],
369*cf78ab8cSAndroid Build Coastguard Worker}
370*cf78ab8cSAndroid Build Coastguard Worker
371*cf78ab8cSAndroid Build Coastguard Workerrust_test_host {
372*cf78ab8cSAndroid Build Coastguard Worker    name: "libnetsim_common_inline_tests",
373*cf78ab8cSAndroid Build Coastguard Worker    defaults: ["libnetsim_common_defaults"],
374*cf78ab8cSAndroid Build Coastguard Worker    test_suites: ["general_tests"],
375*cf78ab8cSAndroid Build Coastguard Worker}
376*cf78ab8cSAndroid Build Coastguard Worker
377*cf78ab8cSAndroid Build Coastguard Workercc_library_host_static {
378*cf78ab8cSAndroid Build Coastguard Worker    name: "lib-netsim-frontend-client",
379*cf78ab8cSAndroid Build Coastguard Worker    defaults: ["netsim_defaults"],
380*cf78ab8cSAndroid Build Coastguard Worker    srcs: [
381*cf78ab8cSAndroid Build Coastguard Worker        "src/frontend/frontend_client.cc",
382*cf78ab8cSAndroid Build Coastguard Worker        "src/util/ini_file.cc",
383*cf78ab8cSAndroid Build Coastguard Worker        "src/util/log.cc",
384*cf78ab8cSAndroid Build Coastguard Worker        "src/util/os_utils.cc",
385*cf78ab8cSAndroid Build Coastguard Worker        "src/util/string_utils.cc",
386*cf78ab8cSAndroid Build Coastguard Worker    ],
387*cf78ab8cSAndroid Build Coastguard Worker    generated_headers: [
388*cf78ab8cSAndroid Build Coastguard Worker        "cxx-bridge-header",
389*cf78ab8cSAndroid Build Coastguard Worker        "netsim_cli_h",
390*cf78ab8cSAndroid Build Coastguard Worker    ],
391*cf78ab8cSAndroid Build Coastguard Worker    shared_libs: ["libgrpc++"],
392*cf78ab8cSAndroid Build Coastguard Worker    generated_sources: ["netsim_cli_cc"],
393*cf78ab8cSAndroid Build Coastguard Worker    static_libs: [
394*cf78ab8cSAndroid Build Coastguard Worker        "libprotobuf-cpp-full",
395*cf78ab8cSAndroid Build Coastguard Worker        "lib-netsim-frontend-proto",
396*cf78ab8cSAndroid Build Coastguard Worker    ],
397*cf78ab8cSAndroid Build Coastguard Worker}
398*cf78ab8cSAndroid Build Coastguard Worker
399*cf78ab8cSAndroid Build Coastguard Workerrust_defaults {
400*cf78ab8cSAndroid Build Coastguard Worker    name: "netsim_cli_defaults",
401*cf78ab8cSAndroid Build Coastguard Worker    rustlibs: [
402*cf78ab8cSAndroid Build Coastguard Worker        "libclap",
403*cf78ab8cSAndroid Build Coastguard Worker        "libcxx",
404*cf78ab8cSAndroid Build Coastguard Worker        "libhex",
405*cf78ab8cSAndroid Build Coastguard Worker        "libnetsim_common",
406*cf78ab8cSAndroid Build Coastguard Worker        "libnetsim_proto",
407*cf78ab8cSAndroid Build Coastguard Worker        "libprotobuf",
408*cf78ab8cSAndroid Build Coastguard Worker        "libtracing",
409*cf78ab8cSAndroid Build Coastguard Worker    ],
410*cf78ab8cSAndroid Build Coastguard Worker}
411*cf78ab8cSAndroid Build Coastguard Worker
412*cf78ab8cSAndroid Build Coastguard Workerrust_defaults {
413*cf78ab8cSAndroid Build Coastguard Worker    name: "netsim_cli_cc_defaults",
414*cf78ab8cSAndroid Build Coastguard Worker    shared_libs: ["libgrpc++"],
415*cf78ab8cSAndroid Build Coastguard Worker    static_libs: [
416*cf78ab8cSAndroid Build Coastguard Worker        "lib-netsim-frontend-client",
417*cf78ab8cSAndroid Build Coastguard Worker        "lib-netsim-frontend-proto",
418*cf78ab8cSAndroid Build Coastguard Worker        "libprotobuf-cpp-full",
419*cf78ab8cSAndroid Build Coastguard Worker    ],
420*cf78ab8cSAndroid Build Coastguard Worker}
421*cf78ab8cSAndroid Build Coastguard Worker
422*cf78ab8cSAndroid Build Coastguard Workerrust_test_host {
423*cf78ab8cSAndroid Build Coastguard Worker    name: "libnetsim_cli_tests",
424*cf78ab8cSAndroid Build Coastguard Worker    srcs: ["rust/cli/src/lib.rs"],
425*cf78ab8cSAndroid Build Coastguard Worker    defaults: ["netsim_cli_defaults"],
426*cf78ab8cSAndroid Build Coastguard Worker    test_suites: ["general_tests"],
427*cf78ab8cSAndroid Build Coastguard Worker}
428*cf78ab8cSAndroid Build Coastguard Worker
429*cf78ab8cSAndroid Build Coastguard Workerrust_library_host {
430*cf78ab8cSAndroid Build Coastguard Worker    name: "libnetsim_cli",
431*cf78ab8cSAndroid Build Coastguard Worker    crate_name: "netsim_cli",
432*cf78ab8cSAndroid Build Coastguard Worker    srcs: ["rust/cli/src/lib.rs"],
433*cf78ab8cSAndroid Build Coastguard Worker    defaults: [
434*cf78ab8cSAndroid Build Coastguard Worker        "netsim_cli_defaults",
435*cf78ab8cSAndroid Build Coastguard Worker        "netsim_cli_cc_defaults",
436*cf78ab8cSAndroid Build Coastguard Worker    ],
437*cf78ab8cSAndroid Build Coastguard Worker}
438*cf78ab8cSAndroid Build Coastguard Worker
439*cf78ab8cSAndroid Build Coastguard Workerrust_binary_host {
440*cf78ab8cSAndroid Build Coastguard Worker    name: "netsim",
441*cf78ab8cSAndroid Build Coastguard Worker    srcs: ["rust/cli/bin/netsim.rs"],
442*cf78ab8cSAndroid Build Coastguard Worker    rustlibs: [
443*cf78ab8cSAndroid Build Coastguard Worker        "libnetsim_cli",
444*cf78ab8cSAndroid Build Coastguard Worker    ],
445*cf78ab8cSAndroid Build Coastguard Worker}
446*cf78ab8cSAndroid Build Coastguard Worker
447*cf78ab8cSAndroid Build Coastguard Workerrust_binary_host {
448*cf78ab8cSAndroid Build Coastguard Worker    name: "netsim_test_client",
449*cf78ab8cSAndroid Build Coastguard Worker    srcs: ["rust/frontend/src/netsim_test_client.rs"],
450*cf78ab8cSAndroid Build Coastguard Worker    rustlibs: [
451*cf78ab8cSAndroid Build Coastguard Worker        "libgrpcio",
452*cf78ab8cSAndroid Build Coastguard Worker        "libnetsim_proto",
453*cf78ab8cSAndroid Build Coastguard Worker        "libprotobuf",
454*cf78ab8cSAndroid Build Coastguard Worker        "libnetsim_common",
455*cf78ab8cSAndroid Build Coastguard Worker    ],
456*cf78ab8cSAndroid Build Coastguard Worker}
457*cf78ab8cSAndroid Build Coastguard Worker
458*cf78ab8cSAndroid Build Coastguard Workerrust_binary_host {
459*cf78ab8cSAndroid Build Coastguard Worker    name: "netsim_test_server",
460*cf78ab8cSAndroid Build Coastguard Worker    srcs: ["rust/frontend/src/netsim_test_server.rs"],
461*cf78ab8cSAndroid Build Coastguard Worker    rustlibs: [
462*cf78ab8cSAndroid Build Coastguard Worker        "libgrpcio",
463*cf78ab8cSAndroid Build Coastguard Worker        "libnetsim_proto",
464*cf78ab8cSAndroid Build Coastguard Worker        "libprotobuf",
465*cf78ab8cSAndroid Build Coastguard Worker        "libnetsim_common",
466*cf78ab8cSAndroid Build Coastguard Worker        "libfutures",
467*cf78ab8cSAndroid Build Coastguard Worker    ],
468*cf78ab8cSAndroid Build Coastguard Worker}
469