blob: c4a42cb76531c4316fc3ddc1aae4697c9d401c73 [file] [log] [blame]
Chenbo Feng75b410b2018-10-10 15:01:19 -07001//
2// Copyright (C) 2018 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16
Bob Badourdcbf8ca2021-02-03 22:55:55 -080017package {
Maciej Żenczykowski5c412c62024-03-10 15:47:22 -070018 default_team: "trendy_team_fwk_core_networking",
Bob Badourdcbf8ca2021-02-03 22:55:55 -080019 // http://go/android-license-faq
20 // A large-scale-change added 'default_applicable_licenses' to import
21 // the below license kinds from "system_bpf_license":
22 // SPDX-license-identifier-Apache-2.0
23 default_applicable_licenses: ["system_bpf_license"],
24}
25
Maciej Żenczykowski5c412c62024-03-10 15:47:22 -070026cc_library {
27 name: "libbpf_android",
28 vendor_available: false,
29 host_supported: false,
30 target: {
31 android: {
32 srcs: [
33 "Loader.cpp",
34 ],
35 sanitize: {
36 misc_undefined: ["integer"],
37 },
38 },
39 },
Maciej Żenczykowski5c412c62024-03-10 15:47:22 -070040 shared_libs: [
41 "libbase",
42 "libutils",
43 "liblog",
44 ],
45 header_libs: [
46 "bpf_headers",
47 ],
48 export_header_lib_headers: [
49 "bpf_headers",
50 ],
51 export_include_dirs: ["include"],
Neill Kapron19a5ec22024-09-13 16:32:28 +000052 defaults: ["bpf_cc_defaults"],
Maciej Żenczykowski5c412c62024-03-10 15:47:22 -070053}
54
Neill Kaprone3fc91e2024-08-07 19:14:47 +000055rust_bindgen {
56 name: "libbpf_android_bindgen",
57 crate_name: "bpf_android_bindgen",
58 wrapper_src: "include/libbpf_android.h",
59 source_stem: "bindings",
60 bindgen_flags: [
61 "--verbose",
62 ],
63 cflags: [
64 "-Werror",
65 "-Wall",
66 "-Wextra",
67 "-Wno-pragma-once-outside-header",
68 ],
69 shared_libs: [
70 "libbase",
71 "libutils",
72 "liblog",
73 "libbpf_android",
74 ],
75}
76
Maciej Żenczykowski5c412c62024-03-10 15:47:22 -070077cc_test {
78 name: "libbpf_load_test",
79 test_suites: ["general-tests"],
80 header_libs: ["bpf_headers"],
81 srcs: [
82 "BpfLoadTest.cpp",
83 ],
Neill Kapron19a5ec22024-09-13 16:32:28 +000084 defaults: ["bpf_cc_defaults"],
Maciej Żenczykowski5c412c62024-03-10 15:47:22 -070085 cflags: [
Maciej Żenczykowski5c412c62024-03-10 15:47:22 -070086 "-Wno-error=unused-variable",
87 ],
Maciej Żenczykowskicc922aa2024-03-10 15:18:20 -070088 static_libs: [
Maciej Żenczykowski5c412c62024-03-10 15:47:22 -070089 "libbpf_android",
Maciej Żenczykowskicc922aa2024-03-10 15:18:20 -070090 "libgmock",
91 ],
92 shared_libs: [
Maciej Żenczykowski5c412c62024-03-10 15:47:22 -070093 "libbpf_bcc",
94 "libbase",
95 "liblog",
96 "libutils",
97 ],
98
99 data: [
100 ":bpfLoadTpProg.o",
101 ],
102 require_root: true,
103}
104
Neill Kaprondd93f852024-08-07 22:39:57 +0000105rust_binary {
Chenbo Feng75b410b2018-10-10 15:01:19 -0700106 name: "bpfloader",
Neill Kapron01249cb2024-08-22 19:09:18 +0000107 cfgs: select(release_flag("RELEASE_BPF_ENABLE_LIBBPF"), {
108 true: ["enable_libbpf"],
109 default: [],
110 }),
Chenbo Feng75b410b2018-10-10 15:01:19 -0700111 srcs: [
Neill Kaprondd93f852024-08-07 22:39:57 +0000112 "bpfloader.rs",
Chenbo Feng75b410b2018-10-10 15:01:19 -0700113 ],
Neill Kaprondd93f852024-08-07 22:39:57 +0000114 rustlibs: [
115 "libbpf_android_bindgen",
Neill Kaprond036b6f2024-11-09 00:30:13 +0000116 "libandroid_ids",
Neill Kaproncbb87b62024-10-04 17:18:45 +0000117 "libandroid_logger",
Neill Kaprond036b6f2024-11-09 00:30:13 +0000118 "libanyhow",
Neill Kaproncbb87b62024-10-04 17:18:45 +0000119 "liblog_rust",
Neill Kaprond036b6f2024-11-09 00:30:13 +0000120 "liblibbpf_rs",
121 "liblibc",
Neill Kaprondd93f852024-08-07 22:39:57 +0000122 ],
Neill Kaprond036b6f2024-11-09 00:30:13 +0000123 required: [] + select(release_flag("RELEASE_BPF_ENABLE_LIBBPF"), {
124 true: [
125 "timeInState.bpf",
126 ],
127 default: [
128 "timeInState.o",
129 ],
130 }),
Ryan Zuklie65748202022-12-07 18:22:21 -0800131 product_variables: {
132 debuggable: {
133 required: [
134 "bpfRingbufProg.o",
135 ],
136 },
Maciej Żenczykowskib9712d12024-03-10 17:18:46 -0700137 },
Chenbo Feng75b410b2018-10-10 15:01:19 -0700138}