xref: /aosp_15_r20/external/libjpeg-turbo/Android.bp (revision dfc6aa5c1cfd4bc4e2018dc74aa96e29ee49c6da)
1*dfc6aa5cSAndroid Build Coastguard Worker// Set up common variables for usage across the libjpeg-turbo modules
2*dfc6aa5cSAndroid Build Coastguard Worker
3*dfc6aa5cSAndroid Build Coastguard Workerpackage {
4*dfc6aa5cSAndroid Build Coastguard Worker    default_applicable_licenses: ["external_libjpeg-turbo_license"],
5*dfc6aa5cSAndroid Build Coastguard Worker}
6*dfc6aa5cSAndroid Build Coastguard Worker
7*dfc6aa5cSAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of
8*dfc6aa5cSAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect
9*dfc6aa5cSAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct.
10*dfc6aa5cSAndroid Build Coastguard Worker//
11*dfc6aa5cSAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory.
12*dfc6aa5cSAndroid Build Coastguard Worker//
13*dfc6aa5cSAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses,
14*dfc6aa5cSAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the
15*dfc6aa5cSAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed.
16*dfc6aa5cSAndroid Build Coastguard Worker//
17*dfc6aa5cSAndroid Build Coastguard Worker// For unused files, consider creating a 'fileGroup' with "//visibility:private"
18*dfc6aa5cSAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be
19*dfc6aa5cSAndroid Build Coastguard Worker// used in the current project.
20*dfc6aa5cSAndroid Build Coastguard Worker// See: http://go/android-license-faq
21*dfc6aa5cSAndroid Build Coastguard Workerlicense {
22*dfc6aa5cSAndroid Build Coastguard Worker    name: "external_libjpeg-turbo_license",
23*dfc6aa5cSAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
24*dfc6aa5cSAndroid Build Coastguard Worker    license_kinds: [
25*dfc6aa5cSAndroid Build Coastguard Worker        "SPDX-license-identifier-BSD",
26*dfc6aa5cSAndroid Build Coastguard Worker        "SPDX-license-identifier-Beerware",
27*dfc6aa5cSAndroid Build Coastguard Worker        "SPDX-license-identifier-MIT",
28*dfc6aa5cSAndroid Build Coastguard Worker        "SPDX-license-identifier-Zlib",
29*dfc6aa5cSAndroid Build Coastguard Worker        "legacy_notice",
30*dfc6aa5cSAndroid Build Coastguard Worker        "legacy_unencumbered",
31*dfc6aa5cSAndroid Build Coastguard Worker    ],
32*dfc6aa5cSAndroid Build Coastguard Worker    license_text: [
33*dfc6aa5cSAndroid Build Coastguard Worker        "LICENSE.md",
34*dfc6aa5cSAndroid Build Coastguard Worker    ],
35*dfc6aa5cSAndroid Build Coastguard Worker}
36*dfc6aa5cSAndroid Build Coastguard Worker
37*dfc6aa5cSAndroid Build Coastguard Workercc_defaults {
38*dfc6aa5cSAndroid Build Coastguard Worker    name: "libjpeg-defaults",
39*dfc6aa5cSAndroid Build Coastguard Worker    cflags: [
40*dfc6aa5cSAndroid Build Coastguard Worker        "-DWITH_SIMD",
41*dfc6aa5cSAndroid Build Coastguard Worker        "-DNO_GETENV",
42*dfc6aa5cSAndroid Build Coastguard Worker
43*dfc6aa5cSAndroid Build Coastguard Worker        "-O3",
44*dfc6aa5cSAndroid Build Coastguard Worker        "-fstrict-aliasing",
45*dfc6aa5cSAndroid Build Coastguard Worker
46*dfc6aa5cSAndroid Build Coastguard Worker        "-Werror",
47*dfc6aa5cSAndroid Build Coastguard Worker        "-Wno-sign-compare",
48*dfc6aa5cSAndroid Build Coastguard Worker        "-Wno-unused-parameter",
49*dfc6aa5cSAndroid Build Coastguard Worker    ],
50*dfc6aa5cSAndroid Build Coastguard Worker    srcs: [
51*dfc6aa5cSAndroid Build Coastguard Worker        "jaricom.c",
52*dfc6aa5cSAndroid Build Coastguard Worker        "jcapimin.c",
53*dfc6aa5cSAndroid Build Coastguard Worker        "jcapistd.c",
54*dfc6aa5cSAndroid Build Coastguard Worker        "jcarith.c",
55*dfc6aa5cSAndroid Build Coastguard Worker        "jccoefct.c",
56*dfc6aa5cSAndroid Build Coastguard Worker        "jccolor.c",
57*dfc6aa5cSAndroid Build Coastguard Worker        "jcdctmgr.c",
58*dfc6aa5cSAndroid Build Coastguard Worker        "jchuff.c",
59*dfc6aa5cSAndroid Build Coastguard Worker        "jcicc.c",
60*dfc6aa5cSAndroid Build Coastguard Worker        "jcinit.c",
61*dfc6aa5cSAndroid Build Coastguard Worker        "jcmainct.c",
62*dfc6aa5cSAndroid Build Coastguard Worker        "jcmarker.c",
63*dfc6aa5cSAndroid Build Coastguard Worker        "jcmaster.c",
64*dfc6aa5cSAndroid Build Coastguard Worker        "jcomapi.c",
65*dfc6aa5cSAndroid Build Coastguard Worker        "jcparam.c",
66*dfc6aa5cSAndroid Build Coastguard Worker        "jcphuff.c",
67*dfc6aa5cSAndroid Build Coastguard Worker        "jcprepct.c",
68*dfc6aa5cSAndroid Build Coastguard Worker        "jcsample.c",
69*dfc6aa5cSAndroid Build Coastguard Worker        "jctrans.c",
70*dfc6aa5cSAndroid Build Coastguard Worker        "jdapimin.c",
71*dfc6aa5cSAndroid Build Coastguard Worker        "jdapistd.c",
72*dfc6aa5cSAndroid Build Coastguard Worker        "jdarith.c",
73*dfc6aa5cSAndroid Build Coastguard Worker        "jdatadst.c",
74*dfc6aa5cSAndroid Build Coastguard Worker        "jdatasrc.c",
75*dfc6aa5cSAndroid Build Coastguard Worker        "jdcoefct.c",
76*dfc6aa5cSAndroid Build Coastguard Worker        "jdcolor.c",
77*dfc6aa5cSAndroid Build Coastguard Worker        "jddctmgr.c",
78*dfc6aa5cSAndroid Build Coastguard Worker        "jdhuff.c",
79*dfc6aa5cSAndroid Build Coastguard Worker        "jdicc.c",
80*dfc6aa5cSAndroid Build Coastguard Worker        "jdinput.c",
81*dfc6aa5cSAndroid Build Coastguard Worker        "jdmainct.c",
82*dfc6aa5cSAndroid Build Coastguard Worker        "jdmarker.c",
83*dfc6aa5cSAndroid Build Coastguard Worker        "jdmaster.c",
84*dfc6aa5cSAndroid Build Coastguard Worker        "jdmerge.c",
85*dfc6aa5cSAndroid Build Coastguard Worker        "jdphuff.c",
86*dfc6aa5cSAndroid Build Coastguard Worker        "jdpostct.c",
87*dfc6aa5cSAndroid Build Coastguard Worker        "jdsample.c",
88*dfc6aa5cSAndroid Build Coastguard Worker        "jdtrans.c",
89*dfc6aa5cSAndroid Build Coastguard Worker        "jerror.c",
90*dfc6aa5cSAndroid Build Coastguard Worker        "jfdctflt.c",
91*dfc6aa5cSAndroid Build Coastguard Worker        "jfdctfst.c",
92*dfc6aa5cSAndroid Build Coastguard Worker        "jfdctint.c",
93*dfc6aa5cSAndroid Build Coastguard Worker        "jidctflt.c",
94*dfc6aa5cSAndroid Build Coastguard Worker        "jidctfst.c",
95*dfc6aa5cSAndroid Build Coastguard Worker        "jidctint.c",
96*dfc6aa5cSAndroid Build Coastguard Worker        "jidctred.c",
97*dfc6aa5cSAndroid Build Coastguard Worker        "jmemmgr.c",
98*dfc6aa5cSAndroid Build Coastguard Worker        "jmemnobs.c",
99*dfc6aa5cSAndroid Build Coastguard Worker        "jpeg_nbits_table.c",
100*dfc6aa5cSAndroid Build Coastguard Worker        "jquant1.c",
101*dfc6aa5cSAndroid Build Coastguard Worker        "jquant2.c",
102*dfc6aa5cSAndroid Build Coastguard Worker        "jutils.c",
103*dfc6aa5cSAndroid Build Coastguard Worker    ],
104*dfc6aa5cSAndroid Build Coastguard Worker
105*dfc6aa5cSAndroid Build Coastguard Worker    arch: {
106*dfc6aa5cSAndroid Build Coastguard Worker        arm: {
107*dfc6aa5cSAndroid Build Coastguard Worker            // By default, the build system generates ARM target binaries in
108*dfc6aa5cSAndroid Build Coastguard Worker            // thumb mode, where each instruction is 16 bits wide.  Defining
109*dfc6aa5cSAndroid Build Coastguard Worker            // this variable as arm forces the build system to generate object
110*dfc6aa5cSAndroid Build Coastguard Worker            // files in 32-bit arm mode.  This is the same setting previously
111*dfc6aa5cSAndroid Build Coastguard Worker            // used by libjpeg and it provides a small performance benefit.
112*dfc6aa5cSAndroid Build Coastguard Worker            instruction_set: "arm",
113*dfc6aa5cSAndroid Build Coastguard Worker            // ARM v7 NEON
114*dfc6aa5cSAndroid Build Coastguard Worker            srcs: [
115*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/aarch32/jchuff-neon.c",
116*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/aarch32/jsimd.c",
117*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/jccolor-neon.c",
118*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/jcgray-neon.c",
119*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/jcphuff-neon.c",
120*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/jcsample-neon.c",
121*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/jdcolor-neon.c",
122*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/jdmerge-neon.c",
123*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/jdsample-neon.c",
124*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/jfdctfst-neon.c",
125*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/jfdctint-neon.c",
126*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/jidctfst-neon.c",
127*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/jidctint-neon.c",
128*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/jidctred-neon.c",
129*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/jquanti-neon.c",
130*dfc6aa5cSAndroid Build Coastguard Worker            ],
131*dfc6aa5cSAndroid Build Coastguard Worker            cflags: ["-DNEON_INTRINSICS", "-mfpu=neon"],
132*dfc6aa5cSAndroid Build Coastguard Worker            local_include_dirs: ["simd/arm"],
133*dfc6aa5cSAndroid Build Coastguard Worker        },
134*dfc6aa5cSAndroid Build Coastguard Worker        arm64: {
135*dfc6aa5cSAndroid Build Coastguard Worker            // ARM v8 64-bit NEON
136*dfc6aa5cSAndroid Build Coastguard Worker            srcs: [
137*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/aarch64/jchuff-neon.c",
138*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/aarch64/jsimd.c",
139*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/jccolor-neon.c",
140*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/jcgray-neon.c",
141*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/jcphuff-neon.c",
142*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/jcsample-neon.c",
143*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/jdcolor-neon.c",
144*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/jdmerge-neon.c",
145*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/jdsample-neon.c",
146*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/jfdctfst-neon.c",
147*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/jfdctint-neon.c",
148*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/jidctfst-neon.c",
149*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/jidctint-neon.c",
150*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/jidctred-neon.c",
151*dfc6aa5cSAndroid Build Coastguard Worker                "simd/arm/jquanti-neon.c",
152*dfc6aa5cSAndroid Build Coastguard Worker            ],
153*dfc6aa5cSAndroid Build Coastguard Worker            cflags: ["-DNEON_INTRINSICS"],
154*dfc6aa5cSAndroid Build Coastguard Worker            local_include_dirs: ["simd/arm"],
155*dfc6aa5cSAndroid Build Coastguard Worker        },
156*dfc6aa5cSAndroid Build Coastguard Worker        x86: {
157*dfc6aa5cSAndroid Build Coastguard Worker            // x86 MMX and SSE2
158*dfc6aa5cSAndroid Build Coastguard Worker            srcs: [
159*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jccolor-avx2.asm",
160*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jccolor-mmx.asm",
161*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jccolor-sse2.asm",
162*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jcgray-avx2.asm",
163*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jcgray-mmx.asm",
164*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jcgray-sse2.asm",
165*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jchuff-sse2.asm",
166*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jcphuff-sse2.asm",
167*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jcsample-avx2.asm",
168*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jcsample-mmx.asm",
169*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jcsample-sse2.asm",
170*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jdcolor-avx2.asm",
171*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jdcolor-mmx.asm",
172*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jdcolor-sse2.asm",
173*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jdmerge-avx2.asm",
174*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jdmerge-mmx.asm",
175*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jdmerge-sse2.asm",
176*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jdsample-avx2.asm",
177*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jdsample-mmx.asm",
178*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jdsample-sse2.asm",
179*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jfdctflt-3dn.asm",
180*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jfdctflt-sse.asm",
181*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jfdctfst-mmx.asm",
182*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jfdctfst-sse2.asm",
183*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jfdctint-avx2.asm",
184*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jfdctint-mmx.asm",
185*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jfdctint-sse2.asm",
186*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jidctflt-3dn.asm",
187*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jidctflt-sse.asm",
188*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jidctflt-sse2.asm",
189*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jidctfst-mmx.asm",
190*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jidctfst-sse2.asm",
191*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jidctint-avx2.asm",
192*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jidctint-mmx.asm",
193*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jidctint-sse2.asm",
194*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jidctred-mmx.asm",
195*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jidctred-sse2.asm",
196*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jquant-3dn.asm",
197*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jquant-mmx.asm",
198*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jquant-sse.asm",
199*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jquantf-sse2.asm",
200*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jquanti-avx2.asm",
201*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jquanti-sse2.asm",
202*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jsimd.c",
203*dfc6aa5cSAndroid Build Coastguard Worker                "simd/i386/jsimdcpu.asm",
204*dfc6aa5cSAndroid Build Coastguard Worker            ],
205*dfc6aa5cSAndroid Build Coastguard Worker            asflags: [
206*dfc6aa5cSAndroid Build Coastguard Worker                "-DPIC",
207*dfc6aa5cSAndroid Build Coastguard Worker                "-D__x86__",
208*dfc6aa5cSAndroid Build Coastguard Worker            ],
209*dfc6aa5cSAndroid Build Coastguard Worker            local_include_dirs: ["simd/nasm"],
210*dfc6aa5cSAndroid Build Coastguard Worker        },
211*dfc6aa5cSAndroid Build Coastguard Worker        x86_64: {
212*dfc6aa5cSAndroid Build Coastguard Worker            // x86-64 SSE2
213*dfc6aa5cSAndroid Build Coastguard Worker            srcs: [
214*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jccolor-avx2.asm",
215*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jccolor-sse2.asm",
216*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jcgray-avx2.asm",
217*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jcgray-sse2.asm",
218*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jchuff-sse2.asm",
219*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jcphuff-sse2.asm",
220*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jcsample-avx2.asm",
221*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jcsample-sse2.asm",
222*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jdcolor-avx2.asm",
223*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jdcolor-sse2.asm",
224*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jdmerge-avx2.asm",
225*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jdmerge-sse2.asm",
226*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jdsample-avx2.asm",
227*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jdsample-sse2.asm",
228*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jfdctflt-sse.asm",
229*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jfdctfst-sse2.asm",
230*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jfdctint-avx2.asm",
231*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jfdctint-sse2.asm",
232*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jidctflt-sse2.asm",
233*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jidctfst-sse2.asm",
234*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jidctint-avx2.asm",
235*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jidctint-sse2.asm",
236*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jidctred-sse2.asm",
237*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jquantf-sse2.asm",
238*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jquanti-avx2.asm",
239*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jquanti-sse2.asm",
240*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jsimd.c",
241*dfc6aa5cSAndroid Build Coastguard Worker                "simd/x86_64/jsimdcpu.asm",
242*dfc6aa5cSAndroid Build Coastguard Worker            ],
243*dfc6aa5cSAndroid Build Coastguard Worker            asflags: [
244*dfc6aa5cSAndroid Build Coastguard Worker                "-DPIC",
245*dfc6aa5cSAndroid Build Coastguard Worker                "-D__x86_64__",
246*dfc6aa5cSAndroid Build Coastguard Worker            ],
247*dfc6aa5cSAndroid Build Coastguard Worker            local_include_dirs: ["simd/nasm"],
248*dfc6aa5cSAndroid Build Coastguard Worker        },
249*dfc6aa5cSAndroid Build Coastguard Worker        riscv64: {
250*dfc6aa5cSAndroid Build Coastguard Worker            srcs: ["jsimd_none.c"],
251*dfc6aa5cSAndroid Build Coastguard Worker        },
252*dfc6aa5cSAndroid Build Coastguard Worker    },
253*dfc6aa5cSAndroid Build Coastguard Worker
254*dfc6aa5cSAndroid Build Coastguard Worker    target: {
255*dfc6aa5cSAndroid Build Coastguard Worker        linux: {
256*dfc6aa5cSAndroid Build Coastguard Worker            asflags: [
257*dfc6aa5cSAndroid Build Coastguard Worker                "-DELF",
258*dfc6aa5cSAndroid Build Coastguard Worker            ],
259*dfc6aa5cSAndroid Build Coastguard Worker        },
260*dfc6aa5cSAndroid Build Coastguard Worker        darwin: {
261*dfc6aa5cSAndroid Build Coastguard Worker            asflags: [
262*dfc6aa5cSAndroid Build Coastguard Worker                "-DMACHO",
263*dfc6aa5cSAndroid Build Coastguard Worker            ],
264*dfc6aa5cSAndroid Build Coastguard Worker        },
265*dfc6aa5cSAndroid Build Coastguard Worker        windows_x86: {
266*dfc6aa5cSAndroid Build Coastguard Worker            asflags: [
267*dfc6aa5cSAndroid Build Coastguard Worker                "-DWIN32",
268*dfc6aa5cSAndroid Build Coastguard Worker            ],
269*dfc6aa5cSAndroid Build Coastguard Worker        },
270*dfc6aa5cSAndroid Build Coastguard Worker        windows_x86_64: {
271*dfc6aa5cSAndroid Build Coastguard Worker            asflags: [
272*dfc6aa5cSAndroid Build Coastguard Worker                "-DWIN64",
273*dfc6aa5cSAndroid Build Coastguard Worker            ],
274*dfc6aa5cSAndroid Build Coastguard Worker        },
275*dfc6aa5cSAndroid Build Coastguard Worker    },
276*dfc6aa5cSAndroid Build Coastguard Worker}
277*dfc6aa5cSAndroid Build Coastguard Worker
278*dfc6aa5cSAndroid Build Coastguard Worker// Build as a shared library.
279*dfc6aa5cSAndroid Build Coastguard Workercc_library {
280*dfc6aa5cSAndroid Build Coastguard Worker    name: "libjpeg",
281*dfc6aa5cSAndroid Build Coastguard Worker    afdo: true,
282*dfc6aa5cSAndroid Build Coastguard Worker    host_supported: true,
283*dfc6aa5cSAndroid Build Coastguard Worker    vendor_available: true,
284*dfc6aa5cSAndroid Build Coastguard Worker    product_available: true,
285*dfc6aa5cSAndroid Build Coastguard Worker    defaults: ["libjpeg-defaults"],
286*dfc6aa5cSAndroid Build Coastguard Worker    export_include_dirs: ["."],
287*dfc6aa5cSAndroid Build Coastguard Worker    target: {
288*dfc6aa5cSAndroid Build Coastguard Worker        windows: {
289*dfc6aa5cSAndroid Build Coastguard Worker            enabled: true,
290*dfc6aa5cSAndroid Build Coastguard Worker        },
291*dfc6aa5cSAndroid Build Coastguard Worker    },
292*dfc6aa5cSAndroid Build Coastguard Worker    sdk_version: "current",
293*dfc6aa5cSAndroid Build Coastguard Worker    min_sdk_version: "apex_inherit",
294*dfc6aa5cSAndroid Build Coastguard Worker    apex_available: [
295*dfc6aa5cSAndroid Build Coastguard Worker        "com.android.mediaprovider",
296*dfc6aa5cSAndroid Build Coastguard Worker        "//apex_available:platform"
297*dfc6aa5cSAndroid Build Coastguard Worker    ],
298*dfc6aa5cSAndroid Build Coastguard Worker}
299*dfc6aa5cSAndroid Build Coastguard Worker
300*dfc6aa5cSAndroid Build Coastguard Worker// Build static library against the NDK
301*dfc6aa5cSAndroid Build Coastguard Workercc_library_static {
302*dfc6aa5cSAndroid Build Coastguard Worker    name: "libjpeg_static_ndk",
303*dfc6aa5cSAndroid Build Coastguard Worker    defaults: ["libjpeg-defaults"],
304*dfc6aa5cSAndroid Build Coastguard Worker    export_include_dirs: ["."],
305*dfc6aa5cSAndroid Build Coastguard Worker    sdk_version: "17",
306*dfc6aa5cSAndroid Build Coastguard Worker}
307*dfc6aa5cSAndroid Build Coastguard Worker
308*dfc6aa5cSAndroid Build Coastguard Worker// Definition for TJBench
309*dfc6aa5cSAndroid Build Coastguard Workercc_binary {
310*dfc6aa5cSAndroid Build Coastguard Worker    name: "tjbench",
311*dfc6aa5cSAndroid Build Coastguard Worker
312*dfc6aa5cSAndroid Build Coastguard Worker    whole_static_libs: ["libjpeg"],
313*dfc6aa5cSAndroid Build Coastguard Worker
314*dfc6aa5cSAndroid Build Coastguard Worker    multilib: {
315*dfc6aa5cSAndroid Build Coastguard Worker        lib32: {
316*dfc6aa5cSAndroid Build Coastguard Worker            stem: "tj32",
317*dfc6aa5cSAndroid Build Coastguard Worker        },
318*dfc6aa5cSAndroid Build Coastguard Worker        lib64: {
319*dfc6aa5cSAndroid Build Coastguard Worker            stem: "tj64",
320*dfc6aa5cSAndroid Build Coastguard Worker        },
321*dfc6aa5cSAndroid Build Coastguard Worker    },
322*dfc6aa5cSAndroid Build Coastguard Worker
323*dfc6aa5cSAndroid Build Coastguard Worker    compile_multilib: "both",
324*dfc6aa5cSAndroid Build Coastguard Worker
325*dfc6aa5cSAndroid Build Coastguard Worker    cflags: [
326*dfc6aa5cSAndroid Build Coastguard Worker        "-DBMP_SUPPORTED",
327*dfc6aa5cSAndroid Build Coastguard Worker        "-DPPM_SUPPORTED",
328*dfc6aa5cSAndroid Build Coastguard Worker        "-Werror",
329*dfc6aa5cSAndroid Build Coastguard Worker        "-Wno-unused-parameter",
330*dfc6aa5cSAndroid Build Coastguard Worker    ],
331*dfc6aa5cSAndroid Build Coastguard Worker
332*dfc6aa5cSAndroid Build Coastguard Worker    srcs: [
333*dfc6aa5cSAndroid Build Coastguard Worker        "jdatadst-tj.c",
334*dfc6aa5cSAndroid Build Coastguard Worker        "jdatasrc-tj.c",
335*dfc6aa5cSAndroid Build Coastguard Worker        "rdbmp.c",
336*dfc6aa5cSAndroid Build Coastguard Worker        "rdppm.c",
337*dfc6aa5cSAndroid Build Coastguard Worker        "tjbench.c",
338*dfc6aa5cSAndroid Build Coastguard Worker        "tjutil.c",
339*dfc6aa5cSAndroid Build Coastguard Worker        "transupp.c",
340*dfc6aa5cSAndroid Build Coastguard Worker        "turbojpeg.c",
341*dfc6aa5cSAndroid Build Coastguard Worker        "wrbmp.c",
342*dfc6aa5cSAndroid Build Coastguard Worker        "wrppm.c",
343*dfc6aa5cSAndroid Build Coastguard Worker    ],
344*dfc6aa5cSAndroid Build Coastguard Worker}
345