aboutsummaryrefslogtreecommitdiff
path: root/Android.bp
blob: 467c4d4aa9045d6dabcf67a0c56eb37b7c62aea7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
cc_defaults {
    name: "libcap_defaults",
    cflags: [
        "-Wno-pointer-arith",
        "-Wno-tautological-compare",
        "-Wno-unused-parameter",
        "-Wno-unused-result",
        "-Wno-unused-variable",
    ],
}

cc_library {
    name: "libcap",
    host_supported: true,
    vendor_available: true,
    product_available: true,
    recovery_available: true,
    vndk: {
        enabled: true,
    },
    defaults: ["libcap_defaults"],

    srcs: [
        "libcap/cap_alloc.c",
        "libcap/cap_extint.c",
        "libcap/cap_file.c",
        "libcap/cap_flag.c",
        "libcap/cap_proc.c",
        "libcap/cap_text.c",
    ],
    generated_headers: ["cap_names.h"],

    local_include_dirs: ["libcap/include"],
    export_include_dirs: ["libcap/include"],

    target: {
        darwin: {
            enabled: false,
        },
        linux_bionic: {
            enabled: true,
        },
        linux_glibc: {
            local_include_dirs: ["libcap/include/uapi"],
        },
    },
    apex_available: [
        "//apex_available:platform",
        "com.android.adbd",
        "com.android.media.swcodec",
        "com.android.virt",
    ],
    min_sdk_version: "29",
}

cc_binary {
    name: "getcap",
    defaults: ["libcap_defaults"],
    srcs: ["progs/getcap.c"],
    static_libs: [
        "libcap",
    ],
}

cc_binary {
    name: "setcap",
    defaults: ["libcap_defaults"],
    srcs: ["progs/setcap.c"],
    static_libs: [
        "libcap",
    ],
}

//
// Generate cap_names.list.h from the <linux/capability.h> header (using awk).
//

genrule {
    name: "cap_names.list.h",
    srcs: ["libcap/include/uapi/linux/capability.h"],
    out: ["cap_names.list.h"],
    tool_files: [":generate_cap_names_list.awk"],
    cmd: "awk -f $(location :generate_cap_names_list.awk) $(in) > $(out)",
}

filegroup {
    name: "generate_cap_names_list.awk",
    srcs: ["generate_cap_names_list.awk"],
}

//
// Generate cap_names.h from cap_names.list.h (using _makenames).
//

genrule {
    name: "cap_names.h",
    out: ["cap_names.h"],
    tools: [":_makenames"],
    cmd: "$(location :_makenames) > $(out)",
}

cc_binary {
    name: "_makenames",
    defaults: ["libcap_defaults"],
    srcs: ["libcap/_makenames.c"],
    generated_headers: ["cap_names.list.h"],
    host_supported: true,
}