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,
}
|