1*fb1b10abSAndroid Build Coastguard Workerpackage { 2*fb1b10abSAndroid Build Coastguard Worker default_applicable_licenses: ["external_libvpx_license"], 3*fb1b10abSAndroid Build Coastguard Worker} 4*fb1b10abSAndroid Build Coastguard Worker 5*fb1b10abSAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of 6*fb1b10abSAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect 7*fb1b10abSAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct. 8*fb1b10abSAndroid Build Coastguard Worker// 9*fb1b10abSAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory. 10*fb1b10abSAndroid Build Coastguard Worker// 11*fb1b10abSAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses, 12*fb1b10abSAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the 13*fb1b10abSAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed. 14*fb1b10abSAndroid Build Coastguard Worker// 15*fb1b10abSAndroid Build Coastguard Worker// For unused files, consider creating a 'fileGroup' with "//visibility:private" 16*fb1b10abSAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be 17*fb1b10abSAndroid Build Coastguard Worker// used in the current project. 18*fb1b10abSAndroid Build Coastguard Worker// See: http://go/android-license-faq 19*fb1b10abSAndroid Build Coastguard Workerlicense { 20*fb1b10abSAndroid Build Coastguard Worker name: "external_libvpx_license", 21*fb1b10abSAndroid Build Coastguard Worker visibility: [":__subpackages__"], 22*fb1b10abSAndroid Build Coastguard Worker license_kinds: [ 23*fb1b10abSAndroid Build Coastguard Worker "SPDX-license-identifier-BSD", 24*fb1b10abSAndroid Build Coastguard Worker "SPDX-license-identifier-ISC", 25*fb1b10abSAndroid Build Coastguard Worker "legacy_unencumbered", 26*fb1b10abSAndroid Build Coastguard Worker ], 27*fb1b10abSAndroid Build Coastguard Worker license_text: [ 28*fb1b10abSAndroid Build Coastguard Worker "NOTICE", 29*fb1b10abSAndroid Build Coastguard Worker ], 30*fb1b10abSAndroid Build Coastguard Worker} 31*fb1b10abSAndroid Build Coastguard Worker 32*fb1b10abSAndroid Build Coastguard Workercc_defaults { 33*fb1b10abSAndroid Build Coastguard Worker name: "libvpx_defaults", 34*fb1b10abSAndroid Build Coastguard Worker 35*fb1b10abSAndroid Build Coastguard Worker cflags: [ 36*fb1b10abSAndroid Build Coastguard Worker "-O3", 37*fb1b10abSAndroid Build Coastguard Worker ], 38*fb1b10abSAndroid Build Coastguard Worker 39*fb1b10abSAndroid Build Coastguard Worker min_sdk_version: "29", 40*fb1b10abSAndroid Build Coastguard Worker apex_available: [ 41*fb1b10abSAndroid Build Coastguard Worker "//apex_available:platform", 42*fb1b10abSAndroid Build Coastguard Worker "com.android.media.swcodec", 43*fb1b10abSAndroid Build Coastguard Worker ], 44*fb1b10abSAndroid Build Coastguard Worker 45*fb1b10abSAndroid Build Coastguard Worker target: { 46*fb1b10abSAndroid Build Coastguard Worker darwin: { 47*fb1b10abSAndroid Build Coastguard Worker enabled: false, 48*fb1b10abSAndroid Build Coastguard Worker }, 49*fb1b10abSAndroid Build Coastguard Worker android: { 50*fb1b10abSAndroid Build Coastguard Worker sanitize: { 51*fb1b10abSAndroid Build Coastguard Worker cfi: true, 52*fb1b10abSAndroid Build Coastguard Worker config: { 53*fb1b10abSAndroid Build Coastguard Worker cfi_assembly_support: true, 54*fb1b10abSAndroid Build Coastguard Worker }, 55*fb1b10abSAndroid Build Coastguard Worker }, 56*fb1b10abSAndroid Build Coastguard Worker }, 57*fb1b10abSAndroid Build Coastguard Worker }, 58*fb1b10abSAndroid Build Coastguard Worker 59*fb1b10abSAndroid Build Coastguard Worker arch: { 60*fb1b10abSAndroid Build Coastguard Worker // configured to require the neon unit 61*fb1b10abSAndroid Build Coastguard Worker arm: { 62*fb1b10abSAndroid Build Coastguard Worker local_include_dirs: ["config/arm-neon"], 63*fb1b10abSAndroid Build Coastguard Worker }, 64*fb1b10abSAndroid Build Coastguard Worker 65*fb1b10abSAndroid Build Coastguard Worker arm64: { 66*fb1b10abSAndroid Build Coastguard Worker local_include_dirs: ["config/arm64"], 67*fb1b10abSAndroid Build Coastguard Worker }, 68*fb1b10abSAndroid Build Coastguard Worker 69*fb1b10abSAndroid Build Coastguard Worker riscv64: { 70*fb1b10abSAndroid Build Coastguard Worker local_include_dirs: ["config/generic"], 71*fb1b10abSAndroid Build Coastguard Worker }, 72*fb1b10abSAndroid Build Coastguard Worker 73*fb1b10abSAndroid Build Coastguard Worker x86: { 74*fb1b10abSAndroid Build Coastguard Worker local_include_dirs: ["config/x86"], 75*fb1b10abSAndroid Build Coastguard Worker }, 76*fb1b10abSAndroid Build Coastguard Worker 77*fb1b10abSAndroid Build Coastguard Worker x86_64: { 78*fb1b10abSAndroid Build Coastguard Worker local_include_dirs: ["config/x86_64"], 79*fb1b10abSAndroid Build Coastguard Worker }, 80*fb1b10abSAndroid Build Coastguard Worker }, 81*fb1b10abSAndroid Build Coastguard Worker} 82*fb1b10abSAndroid Build Coastguard Worker 83*fb1b10abSAndroid Build Coastguard Workercc_library_static { 84*fb1b10abSAndroid Build Coastguard Worker name: "libvpx_neon_dotprod", 85*fb1b10abSAndroid Build Coastguard Worker defaults: ["libvpx_defaults"], 86*fb1b10abSAndroid Build Coastguard Worker host_supported: true, 87*fb1b10abSAndroid Build Coastguard Worker vendor_available: true, 88*fb1b10abSAndroid Build Coastguard Worker visibility: ["//visibility:private"], 89*fb1b10abSAndroid Build Coastguard Worker 90*fb1b10abSAndroid Build Coastguard Worker cflags: [ 91*fb1b10abSAndroid Build Coastguard Worker "-Xclang -target-feature", 92*fb1b10abSAndroid Build Coastguard Worker // This comment prevents bpfmt from sorting the flags incorrectly. 93*fb1b10abSAndroid Build Coastguard Worker "-Xclang +dotprod", 94*fb1b10abSAndroid Build Coastguard Worker ], 95*fb1b10abSAndroid Build Coastguard Worker 96*fb1b10abSAndroid Build Coastguard Worker arch: { 97*fb1b10abSAndroid Build Coastguard Worker arm64: { 98*fb1b10abSAndroid Build Coastguard Worker srcs: libvpx_arm64_neon_dotprod_c_srcs, 99*fb1b10abSAndroid Build Coastguard Worker }, 100*fb1b10abSAndroid Build Coastguard Worker }, 101*fb1b10abSAndroid Build Coastguard Worker} 102*fb1b10abSAndroid Build Coastguard Worker 103*fb1b10abSAndroid Build Coastguard Workercc_library_static { 104*fb1b10abSAndroid Build Coastguard Worker name: "libvpx_neon_i8mm", 105*fb1b10abSAndroid Build Coastguard Worker defaults: ["libvpx_defaults"], 106*fb1b10abSAndroid Build Coastguard Worker host_supported: true, 107*fb1b10abSAndroid Build Coastguard Worker vendor_available: true, 108*fb1b10abSAndroid Build Coastguard Worker visibility: ["//visibility:private"], 109*fb1b10abSAndroid Build Coastguard Worker 110*fb1b10abSAndroid Build Coastguard Worker cflags: [ 111*fb1b10abSAndroid Build Coastguard Worker "-Xclang -target-feature", 112*fb1b10abSAndroid Build Coastguard Worker // This comment prevents bpfmt from sorting the flags incorrectly. 113*fb1b10abSAndroid Build Coastguard Worker "-Xclang +dotprod", 114*fb1b10abSAndroid Build Coastguard Worker // This comment prevents bpfmt from sorting the flags incorrectly. 115*fb1b10abSAndroid Build Coastguard Worker "-Xclang -target-feature", 116*fb1b10abSAndroid Build Coastguard Worker // This comment prevents bpfmt from sorting the flags incorrectly. 117*fb1b10abSAndroid Build Coastguard Worker "-Xclang +i8mm", 118*fb1b10abSAndroid Build Coastguard Worker ], 119*fb1b10abSAndroid Build Coastguard Worker 120*fb1b10abSAndroid Build Coastguard Worker arch: { 121*fb1b10abSAndroid Build Coastguard Worker arm64: { 122*fb1b10abSAndroid Build Coastguard Worker srcs: libvpx_arm64_neon_i8mm_c_srcs, 123*fb1b10abSAndroid Build Coastguard Worker }, 124*fb1b10abSAndroid Build Coastguard Worker }, 125*fb1b10abSAndroid Build Coastguard Worker} 126*fb1b10abSAndroid Build Coastguard Worker 127*fb1b10abSAndroid Build Coastguard Workercc_library_static { 128*fb1b10abSAndroid Build Coastguard Worker name: "libvpx_sve", 129*fb1b10abSAndroid Build Coastguard Worker defaults: ["libvpx_defaults"], 130*fb1b10abSAndroid Build Coastguard Worker host_supported: true, 131*fb1b10abSAndroid Build Coastguard Worker vendor_available: true, 132*fb1b10abSAndroid Build Coastguard Worker visibility: ["//visibility:private"], 133*fb1b10abSAndroid Build Coastguard Worker 134*fb1b10abSAndroid Build Coastguard Worker cflags: [ 135*fb1b10abSAndroid Build Coastguard Worker "-Xclang -target-feature", 136*fb1b10abSAndroid Build Coastguard Worker // This comment prevents bpfmt from sorting the flags incorrectly. 137*fb1b10abSAndroid Build Coastguard Worker "-Xclang +dotprod", 138*fb1b10abSAndroid Build Coastguard Worker // This comment prevents bpfmt from sorting the flags incorrectly. 139*fb1b10abSAndroid Build Coastguard Worker "-Xclang -target-feature", 140*fb1b10abSAndroid Build Coastguard Worker // This comment prevents bpfmt from sorting the flags incorrectly. 141*fb1b10abSAndroid Build Coastguard Worker "-Xclang +i8mm", 142*fb1b10abSAndroid Build Coastguard Worker // This comment prevents bpfmt from sorting the flags incorrectly. 143*fb1b10abSAndroid Build Coastguard Worker "-Xclang -target-feature", 144*fb1b10abSAndroid Build Coastguard Worker // This comment prevents bpfmt from sorting the flags incorrectly. 145*fb1b10abSAndroid Build Coastguard Worker "-Xclang +sve", 146*fb1b10abSAndroid Build Coastguard Worker ], 147*fb1b10abSAndroid Build Coastguard Worker 148*fb1b10abSAndroid Build Coastguard Worker arch: { 149*fb1b10abSAndroid Build Coastguard Worker arm64: { 150*fb1b10abSAndroid Build Coastguard Worker srcs: libvpx_arm64_sve_c_srcs, 151*fb1b10abSAndroid Build Coastguard Worker }, 152*fb1b10abSAndroid Build Coastguard Worker }, 153*fb1b10abSAndroid Build Coastguard Worker} 154*fb1b10abSAndroid Build Coastguard Worker 155*fb1b10abSAndroid Build Coastguard Workercc_library { 156*fb1b10abSAndroid Build Coastguard Worker name: "libvpx", 157*fb1b10abSAndroid Build Coastguard Worker defaults: [ "libvpx_defaults" ], 158*fb1b10abSAndroid Build Coastguard Worker vendor_available: true, 159*fb1b10abSAndroid Build Coastguard Worker host_supported: true, 160*fb1b10abSAndroid Build Coastguard Worker version_script: "exports.lds", 161*fb1b10abSAndroid Build Coastguard Worker 162*fb1b10abSAndroid Build Coastguard Worker arch: { 163*fb1b10abSAndroid Build Coastguard Worker // configured to require the neon unit 164*fb1b10abSAndroid Build Coastguard Worker arm: { 165*fb1b10abSAndroid Build Coastguard Worker // Want arm, not thumb, optimized 166*fb1b10abSAndroid Build Coastguard Worker instruction_set: "arm", 167*fb1b10abSAndroid Build Coastguard Worker 168*fb1b10abSAndroid Build Coastguard Worker srcs: libvpx_arm_neon_c_srcs + libvpx_arm_neon_asm_srcs, 169*fb1b10abSAndroid Build Coastguard Worker }, 170*fb1b10abSAndroid Build Coastguard Worker 171*fb1b10abSAndroid Build Coastguard Worker arm64: { 172*fb1b10abSAndroid Build Coastguard Worker srcs: libvpx_arm64_c_srcs, 173*fb1b10abSAndroid Build Coastguard Worker whole_static_libs: [ 174*fb1b10abSAndroid Build Coastguard Worker "libvpx_neon_dotprod", 175*fb1b10abSAndroid Build Coastguard Worker "libvpx_neon_i8mm", 176*fb1b10abSAndroid Build Coastguard Worker "libvpx_sve", 177*fb1b10abSAndroid Build Coastguard Worker ], 178*fb1b10abSAndroid Build Coastguard Worker }, 179*fb1b10abSAndroid Build Coastguard Worker 180*fb1b10abSAndroid Build Coastguard Worker riscv64: { 181*fb1b10abSAndroid Build Coastguard Worker srcs: libvpx_generic_c_srcs, 182*fb1b10abSAndroid Build Coastguard Worker }, 183*fb1b10abSAndroid Build Coastguard Worker 184*fb1b10abSAndroid Build Coastguard Worker x86: { 185*fb1b10abSAndroid Build Coastguard Worker srcs: libvpx_x86_c_srcs + libvpx_x86_asm_srcs, 186*fb1b10abSAndroid Build Coastguard Worker cflags: [ 187*fb1b10abSAndroid Build Coastguard Worker "-mssse3", 188*fb1b10abSAndroid Build Coastguard Worker ], 189*fb1b10abSAndroid Build Coastguard Worker }, 190*fb1b10abSAndroid Build Coastguard Worker 191*fb1b10abSAndroid Build Coastguard Worker x86_64: { 192*fb1b10abSAndroid Build Coastguard Worker srcs: libvpx_x86_64_c_srcs + libvpx_x86_64_asm_srcs, 193*fb1b10abSAndroid Build Coastguard Worker cflags: [ 194*fb1b10abSAndroid Build Coastguard Worker "-mssse3", 195*fb1b10abSAndroid Build Coastguard Worker ], 196*fb1b10abSAndroid Build Coastguard Worker }, 197*fb1b10abSAndroid Build Coastguard Worker }, 198*fb1b10abSAndroid Build Coastguard Worker 199*fb1b10abSAndroid Build Coastguard Worker cflags: [ 200*fb1b10abSAndroid Build Coastguard Worker "-Wno-unused-parameter", 201*fb1b10abSAndroid Build Coastguard Worker ], 202*fb1b10abSAndroid Build Coastguard Worker 203*fb1b10abSAndroid Build Coastguard Worker export_include_dirs: ["."], 204*fb1b10abSAndroid Build Coastguard Worker 205*fb1b10abSAndroid Build Coastguard Worker sanitize: { 206*fb1b10abSAndroid Build Coastguard Worker integer_overflow: true, 207*fb1b10abSAndroid Build Coastguard Worker misc_undefined: ["bounds"], 208*fb1b10abSAndroid Build Coastguard Worker blocklist: "libvpx_blocklist.txt", 209*fb1b10abSAndroid Build Coastguard Worker }, 210*fb1b10abSAndroid Build Coastguard Worker} 211*fb1b10abSAndroid Build Coastguard Worker 212*fb1b10abSAndroid Build Coastguard Workercc_library { 213*fb1b10abSAndroid Build Coastguard Worker name: "libvpxrc", 214*fb1b10abSAndroid Build Coastguard Worker defaults: [ "libvpx_defaults" ], 215*fb1b10abSAndroid Build Coastguard Worker vendor_available: true, 216*fb1b10abSAndroid Build Coastguard Worker static_libs: [ "libvpx" ], 217*fb1b10abSAndroid Build Coastguard Worker 218*fb1b10abSAndroid Build Coastguard Worker arch: { 219*fb1b10abSAndroid Build Coastguard Worker x86_64: { 220*fb1b10abSAndroid Build Coastguard Worker srcs: libvpxrc_x86_64_c_srcs + 221*fb1b10abSAndroid Build Coastguard Worker libvpxrc_x86_64_cc_srcs + 222*fb1b10abSAndroid Build Coastguard Worker libvpxrc_x86_64_asm_srcs, 223*fb1b10abSAndroid Build Coastguard Worker cflags: [ 224*fb1b10abSAndroid Build Coastguard Worker "-mssse3", 225*fb1b10abSAndroid Build Coastguard Worker ], 226*fb1b10abSAndroid Build Coastguard Worker }, 227*fb1b10abSAndroid Build Coastguard Worker }, 228*fb1b10abSAndroid Build Coastguard Worker 229*fb1b10abSAndroid Build Coastguard Worker export_include_dirs: ["."], 230*fb1b10abSAndroid Build Coastguard Worker} 231*fb1b10abSAndroid Build Coastguard Worker 232*fb1b10abSAndroid Build Coastguard Workercc_library_headers { 233*fb1b10abSAndroid Build Coastguard Worker name: "libvpx_headers", 234*fb1b10abSAndroid Build Coastguard Worker vendor_available: true, 235*fb1b10abSAndroid Build Coastguard Worker host_supported: true, 236*fb1b10abSAndroid Build Coastguard Worker 237*fb1b10abSAndroid Build Coastguard Worker arch: { 238*fb1b10abSAndroid Build Coastguard Worker arm: { 239*fb1b10abSAndroid Build Coastguard Worker export_include_dirs: ["config/arm-neon"], 240*fb1b10abSAndroid Build Coastguard Worker }, 241*fb1b10abSAndroid Build Coastguard Worker 242*fb1b10abSAndroid Build Coastguard Worker arm64: { 243*fb1b10abSAndroid Build Coastguard Worker export_include_dirs: ["config/arm64"], 244*fb1b10abSAndroid Build Coastguard Worker }, 245*fb1b10abSAndroid Build Coastguard Worker 246*fb1b10abSAndroid Build Coastguard Worker riscv64: { 247*fb1b10abSAndroid Build Coastguard Worker export_include_dirs: ["config/generic"], 248*fb1b10abSAndroid Build Coastguard Worker }, 249*fb1b10abSAndroid Build Coastguard Worker 250*fb1b10abSAndroid Build Coastguard Worker x86: { 251*fb1b10abSAndroid Build Coastguard Worker export_include_dirs: ["config/x86"], 252*fb1b10abSAndroid Build Coastguard Worker }, 253*fb1b10abSAndroid Build Coastguard Worker 254*fb1b10abSAndroid Build Coastguard Worker x86_64: { 255*fb1b10abSAndroid Build Coastguard Worker export_include_dirs: ["config/x86_64"], 256*fb1b10abSAndroid Build Coastguard Worker }, 257*fb1b10abSAndroid Build Coastguard Worker }, 258*fb1b10abSAndroid Build Coastguard Worker 259*fb1b10abSAndroid Build Coastguard Worker export_include_dirs: ["."], 260*fb1b10abSAndroid Build Coastguard Worker} 261*fb1b10abSAndroid Build Coastguard Worker 262*fb1b10abSAndroid Build Coastguard Workercc_fuzz { 263*fb1b10abSAndroid Build Coastguard Worker name: "vp9_dec_fuzzer", 264*fb1b10abSAndroid Build Coastguard Worker defaults: [ "libvpx_defaults" ], 265*fb1b10abSAndroid Build Coastguard Worker host_supported: true, 266*fb1b10abSAndroid Build Coastguard Worker srcs: [ 267*fb1b10abSAndroid Build Coastguard Worker "examples/vpx_dec_fuzzer.cc", 268*fb1b10abSAndroid Build Coastguard Worker ], 269*fb1b10abSAndroid Build Coastguard Worker 270*fb1b10abSAndroid Build Coastguard Worker cflags: ["-DDECODER=vp9"], 271*fb1b10abSAndroid Build Coastguard Worker static_libs: [ 272*fb1b10abSAndroid Build Coastguard Worker "libvpx", 273*fb1b10abSAndroid Build Coastguard Worker ], 274*fb1b10abSAndroid Build Coastguard Worker} 275*fb1b10abSAndroid Build Coastguard Worker 276*fb1b10abSAndroid Build Coastguard Workercc_fuzz { 277*fb1b10abSAndroid Build Coastguard Worker name: "vp8_dec_fuzzer", 278*fb1b10abSAndroid Build Coastguard Worker defaults: [ "libvpx_defaults" ], 279*fb1b10abSAndroid Build Coastguard Worker host_supported: true, 280*fb1b10abSAndroid Build Coastguard Worker srcs: [ 281*fb1b10abSAndroid Build Coastguard Worker "examples/vpx_dec_fuzzer.cc", 282*fb1b10abSAndroid Build Coastguard Worker ], 283*fb1b10abSAndroid Build Coastguard Worker 284*fb1b10abSAndroid Build Coastguard Worker cflags: ["-DDECODER=vp8"], 285*fb1b10abSAndroid Build Coastguard Worker static_libs: [ 286*fb1b10abSAndroid Build Coastguard Worker "libvpx", 287*fb1b10abSAndroid Build Coastguard Worker ], 288*fb1b10abSAndroid Build Coastguard Worker} 289