xref: /aosp_15_r20/external/libvpx/Android.bp.in (revision fb1b10ab9aebc7c7068eedab379b749d7e3900be)
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