package { default_applicable_licenses: ["external_libpcap_license"], } license { name: "external_libpcap_license", visibility: [":__subpackages__"], license_kinds: [ "SPDX-license-identifier-Apache-2.0", "SPDX-license-identifier-BSD", "SPDX-license-identifier-ISC", "SPDX-license-identifier-MIT", ], license_text: [ "LICENSE", "NOTICE", ], } cc_defaults { name: "libpcap_defaults", cflags: [ "-D_BSD_SOURCE", "-DHAVE_CONFIG_H", "-Dlint", "-D_U_=__attribute__((__unused__))", "-Wall", "-Werror", "-Wno-macro-redefined", "-Wno-pointer-arith", "-Wno-sign-compare", "-Wno-unused-parameter", "-Wno-unused-result", "-Wno-tautological-compare", ], } cc_library { name: "libpcap", host_supported: true, vendor_available: true, // Build against the NDK 29 because it's used by the network stack mainline module tests, which // need to support Q. // TODO(b/148792341): stop hardcoding sdk_version integers in libraries all over the tree and // define a min_apex_sdk_version property that all module code can use. sdk_version: "29", defaults: ["libpcap_defaults"], // (Matches order in libpcap's Makefile.) srcs: [ "bpf_dump.c", "bpf_filter.c", "bpf_image.c", "etherent.c", "fad-getad.c", "fmtutils.c", "gencode.c", "grammar.c", "nametoaddr.c", "optimize.c", "pcap-common.c", "pcap-linux.c", "pcap-netfilter-linux-android.c", "pcap-usb-linux-common.c", "pcap-usb-linux.c", "pcap-util.c", "pcap.c", "savefile.c", "scanner.c", "sf-pcap.c", "sf-pcapng.c", ], target: { linux: { srcs: [ "missing/strlcpy.c", ], }, darwin: { enabled: false, }, }, export_include_dirs: ["."], } // // Tests (but not _unit_ tests). // // It's unlikely anyone's running these manually, but at least compiling them // shows we can compile libpcap callers... // cc_test { name: "libpcap_can_set_rfmon_test", defaults: ["libpcap_defaults"], gtest: false, srcs: ["testprogs/can_set_rfmon_test.c"], static_libs: ["libpcap"], } cc_test { name: "libpcap_capture_test", defaults: ["libpcap_defaults"], gtest: false, srcs: ["testprogs/capturetest.c"], static_libs: ["libpcap"], } cc_test { name: "libpcap_filter_test", defaults: ["libpcap_defaults"], gtest: false, srcs: ["testprogs/filtertest.c"], static_libs: ["libpcap"], } cc_test { name: "libpcap_findalldevs_test", defaults: ["libpcap_defaults"], gtest: false, srcs: ["testprogs/findalldevstest.c"], static_libs: ["libpcap"], } cc_test { name: "libpcap_open_test", defaults: ["libpcap_defaults"], gtest: false, srcs: ["testprogs/opentest.c"], static_libs: ["libpcap"], } cc_test { name: "libpcap_reactivate_test", defaults: ["libpcap_defaults"], gtest: false, srcs: ["testprogs/reactivatetest.c"], static_libs: ["libpcap"], } cc_test { name: "libpcap_selpoll_test", defaults: ["libpcap_defaults"], gtest: false, srcs: ["testprogs/selpolltest.c"], static_libs: ["libpcap"], } cc_test { name: "libpcap_threadsignal_test", defaults: ["libpcap_defaults"], gtest: false, srcs: ["testprogs/threadsignaltest.c"], static_libs: ["libpcap"], } cc_test { name: "libpcap_valgrind_test", defaults: ["libpcap_defaults"], gtest: false, srcs: ["testprogs/valgrindtest.c"], static_libs: ["libpcap"], }