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