• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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    cflags: [
62        "-Wnullable-to-nonnull-conversion",
63        "-Wthread-safety",
64        "-Wunused-parameter",
65    ],
66    tidy: true,
67    tidy_checks: [
68        "android-*",
69        "cert-*",
70        "clang-analyzer-security*",
71        // Disabling due to many unavoidable warnings from POSIX API usage.
72        "-google-runtime-int",
73    ],
74}
75
76cc_library_headers {
77    name: "libbpf_bcc_headers",
78    vendor_available: true,
79    host_supported: false,
80    native_bridge_supported: true,
81    export_include_dirs: ["src/cc/includes/"],
82    target: {
83        linux_bionic: {
84            enabled: true,
85        },
86    },
87}
88
89cc_library {
90    name: "libbpf_bcc",
91    vendor_available: true,
92    host_supported: false,
93    native_bridge_supported: true,
94    target: {
95        android: {
96            srcs: [
97                "src/cc/libbpf.c",
98                "src/cc/perf_reader.c",
99            ],
100            sanitize: {
101                misc_undefined: ["integer"],
102            },
103        },
104    },
105    shared_libs: ["libbpf_minimal"],
106
107    header_libs: [
108        "libbpf_bcc_headers",
109    ],
110    export_header_lib_headers: ["libbpf_bcc_headers"],
111    local_include_dirs: ["src/cc"],
112
113    defaults: ["bpf_defaults"],
114    cflags: [
115        "-DHAVE_EXTERNAL_LIBBPF",
116        "-DMINIMAL_LIBBPF",
117        "-Werror",
118        "-Wall",
119        "-Wextra",
120        "-Wno-sign-compare",
121        "-Wno-typedef-redefinition",
122        "-Wno-unused-parameter",
123    ],
124}
125