// // Copyright (C) 2018 The Android Open Source Project // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // package { default_team: "trendy_team_fwk_core_networking", // http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // the below license kinds from "system_bpf_license": // SPDX-license-identifier-Apache-2.0 default_applicable_licenses: ["system_bpf_license"], } cc_library { name: "libbpf_android", vendor_available: false, host_supported: false, target: { android: { srcs: [ "Loader.cpp", ], sanitize: { misc_undefined: ["integer"], }, }, }, shared_libs: [ "libbase", "libutils", "liblog", ], header_libs: [ "bpf_headers", ], export_header_lib_headers: [ "bpf_headers", ], export_include_dirs: ["include"], defaults: ["bpf_cc_defaults"], } rust_bindgen { name: "libbpf_android_bindgen", crate_name: "bpf_android_bindgen", wrapper_src: "include/libbpf_android.h", source_stem: "bindings", bindgen_flags: [ "--verbose", ], cflags: [ "-Werror", "-Wall", "-Wextra", "-Wno-pragma-once-outside-header", ], shared_libs: [ "libbase", "libutils", "liblog", "libbpf_android", ], } cc_test { name: "libbpf_load_test", test_suites: ["general-tests"], header_libs: ["bpf_headers"], srcs: [ "BpfLoadTest.cpp", ], defaults: ["bpf_cc_defaults"], cflags: [ "-Wno-error=unused-variable", ], static_libs: [ "libbpf_android", "libgmock", ], shared_libs: [ "libbpf_bcc", "libbase", "liblog", "libutils", ], data: [ ":bpfLoadTpProg.o", ], require_root: true, } rust_binary { name: "bpfloader", cfgs: select(release_flag("RELEASE_BPF_ENABLE_LIBBPF"), { true: ["enable_libbpf"], default: [], }), srcs: [ "bpfloader.rs", ], rustlibs: [ "libbpf_android_bindgen", "libandroid_ids", "libandroid_logger", "libanyhow", "liblog_rust", "liblibbpf_rs", "liblibc", ], required: [] + select(release_flag("RELEASE_BPF_ENABLE_LIBBPF"), { true: [ "timeInState.bpf", ], default: [ "timeInState.o", ], }), product_variables: { debuggable: { required: [ "bpfRingbufProg.o", ], }, }, }