• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1package {
2    default_applicable_licenses: ["external_libpcap_license"],
3}
4
5license {
6    name: "external_libpcap_license",
7    visibility: [":__subpackages__"],
8    license_kinds: [
9        "SPDX-license-identifier-Apache-2.0",
10        "SPDX-license-identifier-BSD",
11        "SPDX-license-identifier-ISC",
12        "SPDX-license-identifier-MIT",
13    ],
14    license_text: [
15        "LICENSE",
16        "NOTICE",
17    ],
18}
19
20cc_defaults {
21    name: "libpcap_defaults",
22    cflags: [
23        "-D_BSD_SOURCE",
24        "-DHAVE_CONFIG_H",
25        "-Dlint",
26        "-D_U_=__attribute__((__unused__))",
27        "-Wall",
28        "-Werror",
29        "-Wno-macro-redefined",
30        "-Wno-pointer-arith",
31        "-Wno-sign-compare",
32        "-Wno-unused-parameter",
33        "-Wno-unused-result",
34        "-Wno-tautological-compare",
35    ],
36}
37
38cc_library {
39    name: "libpcap",
40    host_supported: true,
41    vendor_available: true,
42    // Build against the NDK 29 because it's used by the network stack mainline module tests, which
43    // need to support Q.
44    // TODO(b/148792341): stop hardcoding sdk_version integers in libraries all over the tree and
45    // define a min_apex_sdk_version property that all module code can use.
46    sdk_version: "29",
47    defaults: ["libpcap_defaults"],
48
49    // (Matches order in libpcap's Makefile.)
50    srcs: [
51        "bpf_dump.c",
52        "bpf_filter.c",
53        "bpf_image.c",
54        "etherent.c",
55        "fad-getad.c",
56        "fmtutils.c",
57        "gencode.c",
58        "grammar.c",
59        "nametoaddr.c",
60        "optimize.c",
61        "pcap-common.c",
62        "pcap-linux.c",
63        "pcap-netfilter-linux-android.c",
64        "pcap-usb-linux.c",
65        "pcap-util.c",
66        "pcap.c",
67        "savefile.c",
68        "scanner.c",
69        "sf-pcap.c",
70        "sf-pcapng.c",
71    ],
72
73    target: {
74        linux: {
75            srcs: [
76                "missing/strlcpy.c",
77            ],
78        },
79        darwin: {
80            enabled: false,
81        },
82    },
83
84    export_include_dirs: ["."],
85}
86
87//
88// Tests (but not _unit_ tests).
89//
90// It's unlikely anyone's running these manually, but at least compiling them
91// shows we can compile libpcap callers...
92//
93
94cc_test {
95    name: "libpcap_can_set_rfmon_test",
96    defaults: ["libpcap_defaults"],
97    gtest: false,
98    srcs: ["testprogs/can_set_rfmon_test.c"],
99    static_libs: ["libpcap"],
100}
101
102cc_test {
103    name: "libpcap_capture_test",
104    defaults: ["libpcap_defaults"],
105    gtest: false,
106    srcs: ["testprogs/capturetest.c"],
107    static_libs: ["libpcap"],
108}
109
110cc_test {
111    name: "libpcap_filter_test",
112    defaults: ["libpcap_defaults"],
113    gtest: false,
114    srcs: ["testprogs/filtertest.c"],
115    static_libs: ["libpcap"],
116}
117
118cc_test {
119    name: "libpcap_findalldevs_test",
120    defaults: ["libpcap_defaults"],
121    gtest: false,
122    srcs: ["testprogs/findalldevstest.c"],
123    static_libs: ["libpcap"],
124}
125
126cc_test {
127    name: "libpcap_open_test",
128    defaults: ["libpcap_defaults"],
129    gtest: false,
130    srcs: ["testprogs/opentest.c"],
131    static_libs: ["libpcap"],
132}
133
134cc_test {
135    name: "libpcap_reactivate_test",
136    defaults: ["libpcap_defaults"],
137    gtest: false,
138    srcs: ["testprogs/reactivatetest.c"],
139    static_libs: ["libpcap"],
140}
141
142cc_test {
143    name: "libpcap_selpoll_test",
144    defaults: ["libpcap_defaults"],
145    gtest: false,
146    srcs: ["testprogs/selpolltest.c"],
147    static_libs: ["libpcap"],
148}
149
150cc_test {
151    name: "libpcap_threadsignal_test",
152    defaults: ["libpcap_defaults"],
153    gtest: false,
154    srcs: ["testprogs/threadsignaltest.c"],
155    static_libs: ["libpcap"],
156}
157
158cc_test {
159    name: "libpcap_valgrind_test",
160    defaults: ["libpcap_defaults"],
161    gtest: false,
162    srcs: ["testprogs/valgrindtest.c"],
163    static_libs: ["libpcap"],
164}
165