xref: /aosp_15_r20/external/libcap/Android.bp (revision 2810ac1b38eead2603277920c78344c84ddf3aff)
1*2810ac1bSKiyoung Kimpackage {
2*2810ac1bSKiyoung Kim    default_applicable_licenses: ["external_libcap_license"],
3*2810ac1bSKiyoung Kim}
4*2810ac1bSKiyoung Kim
5*2810ac1bSKiyoung Kim// Added automatically by a large-scale-change that took the approach of
6*2810ac1bSKiyoung Kim// 'apply every license found to every target'. While this makes sure we respect
7*2810ac1bSKiyoung Kim// every license restriction, it may not be entirely correct.
8*2810ac1bSKiyoung Kim//
9*2810ac1bSKiyoung Kim// e.g. GPL in an MIT project might only apply to the contrib/ directory.
10*2810ac1bSKiyoung Kim//
11*2810ac1bSKiyoung Kim// Please consider splitting the single license below into multiple licenses,
12*2810ac1bSKiyoung Kim// taking care not to lose any license_kind information, and overriding the
13*2810ac1bSKiyoung Kim// default license using the 'licenses: [...]' property on targets as needed.
14*2810ac1bSKiyoung Kim//
15*2810ac1bSKiyoung Kim// For unused files, consider creating a 'fileGroup' with "//visibility:private"
16*2810ac1bSKiyoung Kim// to attach the license to, and including a comment whether the files may be
17*2810ac1bSKiyoung Kim// used in the current project.
18*2810ac1bSKiyoung Kim//
19*2810ac1bSKiyoung Kim// large-scale-change filtered out the below license kinds as false-positives:
20*2810ac1bSKiyoung Kim//   SPDX-license-identifier-GPL
21*2810ac1bSKiyoung Kim//   SPDX-license-identifier-GPL-2.0
22*2810ac1bSKiyoung Kim//   SPDX-license-identifier-LGPL
23*2810ac1bSKiyoung Kim// See: http://go/android-license-faq
24*2810ac1bSKiyoung Kimlicense {
25*2810ac1bSKiyoung Kim    name: "external_libcap_license",
26*2810ac1bSKiyoung Kim    visibility: [":__subpackages__"],
27*2810ac1bSKiyoung Kim    license_kinds: [
28*2810ac1bSKiyoung Kim        "SPDX-license-identifier-Apache-2.0",
29*2810ac1bSKiyoung Kim        "SPDX-license-identifier-BSD",
30*2810ac1bSKiyoung Kim        "SPDX-license-identifier-BSD-3-Clause",
31*2810ac1bSKiyoung Kim    ],
32*2810ac1bSKiyoung Kim    license_text: [
33*2810ac1bSKiyoung Kim        "NOTICE",
34*2810ac1bSKiyoung Kim    ],
35*2810ac1bSKiyoung Kim}
36*2810ac1bSKiyoung Kim
37*2810ac1bSKiyoung Kimcc_defaults {
38*2810ac1bSKiyoung Kim    name: "libcap_defaults",
39*2810ac1bSKiyoung Kim    cflags: [
40*2810ac1bSKiyoung Kim        "-Wno-pointer-arith",
41*2810ac1bSKiyoung Kim        "-Wno-tautological-compare",
42*2810ac1bSKiyoung Kim        "-Wno-unused-parameter",
43*2810ac1bSKiyoung Kim        "-Wno-unused-result",
44*2810ac1bSKiyoung Kim        "-Wno-unused-variable",
45*2810ac1bSKiyoung Kim    ],
46*2810ac1bSKiyoung Kim}
47*2810ac1bSKiyoung Kim
48*2810ac1bSKiyoung Kimcc_library {
49*2810ac1bSKiyoung Kim    name: "libcap",
50*2810ac1bSKiyoung Kim    host_supported: true,
51*2810ac1bSKiyoung Kim    vendor_available: true,
52*2810ac1bSKiyoung Kim    product_available: true,
53*2810ac1bSKiyoung Kim    ramdisk_available: true,
54*2810ac1bSKiyoung Kim    recovery_available: true,
55*2810ac1bSKiyoung Kim    defaults: ["libcap_defaults"],
56*2810ac1bSKiyoung Kim
57*2810ac1bSKiyoung Kim    srcs: [
58*2810ac1bSKiyoung Kim        "libcap/cap_alloc.c",
59*2810ac1bSKiyoung Kim        "libcap/cap_extint.c",
60*2810ac1bSKiyoung Kim        "libcap/cap_file.c",
61*2810ac1bSKiyoung Kim        "libcap/cap_flag.c",
62*2810ac1bSKiyoung Kim        "libcap/cap_proc.c",
63*2810ac1bSKiyoung Kim        "libcap/cap_text.c",
64*2810ac1bSKiyoung Kim    ],
65*2810ac1bSKiyoung Kim    generated_headers: ["cap_names.h"],
66*2810ac1bSKiyoung Kim
67*2810ac1bSKiyoung Kim    local_include_dirs: ["libcap/include"],
68*2810ac1bSKiyoung Kim    export_include_dirs: ["libcap/include"],
69*2810ac1bSKiyoung Kim
70*2810ac1bSKiyoung Kim    target: {
71*2810ac1bSKiyoung Kim        darwin: {
72*2810ac1bSKiyoung Kim            enabled: false,
73*2810ac1bSKiyoung Kim        },
74*2810ac1bSKiyoung Kim        linux_bionic: {
75*2810ac1bSKiyoung Kim            enabled: true,
76*2810ac1bSKiyoung Kim        },
77*2810ac1bSKiyoung Kim        linux_glibc: {
78*2810ac1bSKiyoung Kim            local_include_dirs: ["libcap/include/uapi"],
79*2810ac1bSKiyoung Kim        },
80*2810ac1bSKiyoung Kim    },
81*2810ac1bSKiyoung Kim    apex_available: [
82*2810ac1bSKiyoung Kim        "//apex_available:platform",
83*2810ac1bSKiyoung Kim        "com.android.adbd",
84*2810ac1bSKiyoung Kim        "com.android.art",
85*2810ac1bSKiyoung Kim        "com.android.art.debug",
86*2810ac1bSKiyoung Kim        "com.android.compos",
87*2810ac1bSKiyoung Kim        "com.android.media.swcodec",
88*2810ac1bSKiyoung Kim        "com.android.virt",
89*2810ac1bSKiyoung Kim    ],
90*2810ac1bSKiyoung Kim    min_sdk_version: "29",
91*2810ac1bSKiyoung Kim}
92*2810ac1bSKiyoung Kim
93*2810ac1bSKiyoung Kimcc_binary {
94*2810ac1bSKiyoung Kim    name: "getcap",
95*2810ac1bSKiyoung Kim    defaults: ["libcap_defaults"],
96*2810ac1bSKiyoung Kim    srcs: ["progs/getcap.c"],
97*2810ac1bSKiyoung Kim    static_libs: [
98*2810ac1bSKiyoung Kim        "libcap",
99*2810ac1bSKiyoung Kim    ],
100*2810ac1bSKiyoung Kim}
101*2810ac1bSKiyoung Kim
102*2810ac1bSKiyoung Kimcc_binary {
103*2810ac1bSKiyoung Kim    name: "setcap",
104*2810ac1bSKiyoung Kim    defaults: ["libcap_defaults"],
105*2810ac1bSKiyoung Kim    srcs: ["progs/setcap.c"],
106*2810ac1bSKiyoung Kim    static_libs: [
107*2810ac1bSKiyoung Kim        "libcap",
108*2810ac1bSKiyoung Kim    ],
109*2810ac1bSKiyoung Kim}
110*2810ac1bSKiyoung Kim
111*2810ac1bSKiyoung Kim//
112*2810ac1bSKiyoung Kim// Generate cap_names.list.h from the <linux/capability.h> header (using awk).
113*2810ac1bSKiyoung Kim//
114*2810ac1bSKiyoung Kim
115*2810ac1bSKiyoung Kimgenrule {
116*2810ac1bSKiyoung Kim    name: "cap_names.list.h",
117*2810ac1bSKiyoung Kim    srcs: ["libcap/include/uapi/linux/capability.h"],
118*2810ac1bSKiyoung Kim    out: ["cap_names.list.h"],
119*2810ac1bSKiyoung Kim    tool_files: ["generate_cap_names_list.awk"],
120*2810ac1bSKiyoung Kim    cmd: "awk -f $(location generate_cap_names_list.awk) $(in) > $(out)",
121*2810ac1bSKiyoung Kim}
122*2810ac1bSKiyoung Kim
123*2810ac1bSKiyoung Kim//
124*2810ac1bSKiyoung Kim// Generate cap_names.h from cap_names.list.h (using _makenames).
125*2810ac1bSKiyoung Kim//
126*2810ac1bSKiyoung Kim
127*2810ac1bSKiyoung Kimgenrule {
128*2810ac1bSKiyoung Kim    name: "cap_names.h",
129*2810ac1bSKiyoung Kim    out: ["cap_names.h"],
130*2810ac1bSKiyoung Kim    tools: [":_makenames"],
131*2810ac1bSKiyoung Kim    cmd: "$(location :_makenames) > $(out)",
132*2810ac1bSKiyoung Kim}
133*2810ac1bSKiyoung Kim
134*2810ac1bSKiyoung Kimcc_binary {
135*2810ac1bSKiyoung Kim    name: "_makenames",
136*2810ac1bSKiyoung Kim    defaults: ["libcap_defaults"],
137*2810ac1bSKiyoung Kim    srcs: ["libcap/_makenames.c"],
138*2810ac1bSKiyoung Kim    generated_headers: ["cap_names.list.h"],
139*2810ac1bSKiyoung Kim    host_supported: true,
140*2810ac1bSKiyoung Kim}
141