1//
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
17package {
18    default_applicable_licenses: ["external_bcc_license"],
19}
20
21// Added automatically by a large-scale-change that took the approach of
22// 'apply every license found to every target'. While this makes sure we respect
23// every license restriction, it may not be entirely correct.
24//
25// e.g. GPL in an MIT project might only apply to the contrib/ directory.
26//
27// Please consider splitting the single license below into multiple licenses,
28// taking care not to lose any license_kind information, and overriding the
29// default license using the 'licenses: [...]' property on targets as needed.
30//
31// For unused files, consider creating a 'fileGroup' with "//visibility:private"
32// to attach the license to, and including a comment whether the files may be
33// used in the current project.
34//
35// large-scale-change included anything that looked like it might be a license
36// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
37//
38// Please consider removing redundant or irrelevant files from 'license_text:'.
39// See: http://go/android-license-faq
40license {
41    name: "external_bcc_license",
42    visibility: [":__subpackages__"],
43    license_kinds: [
44        "SPDX-license-identifier-Apache-2.0",
45        "SPDX-license-identifier-BSD",
46        "SPDX-license-identifier-BSL-1.0",
47        "SPDX-license-identifier-GPL",
48        "SPDX-license-identifier-GPL-2.0",
49        "SPDX-license-identifier-MIT",
50        "SPDX-license-identifier-NCSA",
51        "legacy_unencumbered",
52    ],
53    license_text: [
54        "LICENSE",
55        "LICENSE.txt",
56    ],
57}
58
59cc_defaults {
60    name: "libbpf_defaults",
61    cpp_std: "c++17",
62    cflags: [
63        "-Wall",
64        "-Werror",
65        "-Wnullable-to-nonnull-conversion",
66        "-Wthread-safety",
67        "-Wunused-parameter",
68    ],
69    tidy: true,
70    tidy_checks: [
71        "android-*",
72        "cert-*",
73        "clang-analyzer-security*",
74        // Disabling due to many unavoidable warnings from POSIX API usage.
75        "-google-runtime-int",
76    ],
77}
78
79cc_library_headers {
80    name: "libbpf_headers",
81    vendor_available: false,
82    host_supported: false,
83    native_bridge_supported: true,
84    export_include_dirs: ["src/cc/includes/"],
85    target: {
86        linux_bionic: {
87            enabled: true,
88        },
89    },
90}
91
92cc_library {
93    name: "libbpf",
94    vendor_available: false,
95    host_supported: false,
96    native_bridge_supported: true,
97    target: {
98        android: {
99            srcs: [
100                "src/cc/libbpf.c",
101                "src/cc/perf_reader.c",
102            ],
103            sanitize: {
104                misc_undefined: ["integer"],
105            },
106        },
107    },
108
109    header_libs: [
110        "libbpf_headers"
111    ],
112    export_header_lib_headers: ["libbpf_headers"],
113    local_include_dirs: ["src/cc"],
114
115    defaults: ["bpf_defaults"],
116    cflags: [
117        "-Werror",
118        "-Wall",
119        "-Wextra",
120    ],
121}
122