Remove support for specifying page_set attribute with file_path in benchmarks.
[chromium-blink-merge.git] / tools / gn / secondary / third_party / libjpeg_turbo / BUILD.gn
blobf594fbecb50f755fa7fc6a2437fa418c44cd9711
1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
5 # Do not use the targets in this file unless you need a certain libjpeg
6 # implementation. Use the meta target //third_party:jpeg instead.
8 if (cpu_arch == "arm") {
9   import("//build/config/arm.gni")
12 if (cpu_arch == "x86" || cpu_arch == "x64") {
14 import("//third_party/yasm/yasm_assemble.gni")
16 yasm_assemble("simd_asm") {
17   defines = []
19   if (cpu_arch == "x86") {
20     sources = [
21       "simd/jccolmmx.asm",
22       "simd/jccolss2.asm",
23       "simd/jcgrammx.asm",
24       "simd/jcgrass2.asm",
25       "simd/jcqnt3dn.asm",
26       "simd/jcqntmmx.asm",
27       "simd/jcqnts2f.asm",
28       "simd/jcqnts2i.asm",
29       "simd/jcqntsse.asm",
30       "simd/jcsammmx.asm",
31       "simd/jcsamss2.asm",
32       "simd/jdcolmmx.asm",
33       "simd/jdcolss2.asm",
34       "simd/jdmermmx.asm",
35       "simd/jdmerss2.asm",
36       "simd/jdsammmx.asm",
37       "simd/jdsamss2.asm",
38       "simd/jf3dnflt.asm",
39       "simd/jfmmxfst.asm",
40       "simd/jfmmxint.asm",
41       "simd/jfss2fst.asm",
42       "simd/jfss2int.asm",
43       "simd/jfsseflt.asm",
44       "simd/ji3dnflt.asm",
45       "simd/jimmxfst.asm",
46       "simd/jimmxint.asm",
47       "simd/jimmxred.asm",
48       "simd/jiss2flt.asm",
49       "simd/jiss2fst.asm",
50       "simd/jiss2int.asm",
51       "simd/jiss2red.asm",
52       "simd/jisseflt.asm",
53       "simd/jsimdcpu.asm",
54     ]
55     defines += [
56       "__x86__",
57     ]
58   } else if (cpu_arch == "x64") {
59     sources = [
60       "simd/jccolss2-64.asm",
61       "simd/jcgrass2-64.asm",
62       "simd/jcqnts2f-64.asm",
63       "simd/jcqnts2i-64.asm",
64       "simd/jcsamss2-64.asm",
65       "simd/jdcolss2-64.asm",
66       "simd/jdmerss2-64.asm",
67       "simd/jdsamss2-64.asm",
68       "simd/jfss2fst-64.asm",
69       "simd/jfss2int-64.asm",
70       "simd/jfsseflt-64.asm",
71       "simd/jiss2flt-64.asm",
72       "simd/jiss2fst-64.asm",
73       "simd/jiss2int-64.asm",
74       "simd/jiss2red-64.asm",
75     ]
76     defines += [
77       "__x86_64__",
78     ]
79   }
81   if (is_win) {
82     defines += [
83       "MSVC",
84     ]
85     include_dirs = [ "win" ]
86     if (cpu_arch == "x86") {
87       defines += [
88         "WIN32",
89       ]
90     } else {
91       defines += [
92         "WIN64",
93       ]
94     }
95   } else if (is_mac) {
96     defines += [
97       "MACHO",
98     ]
99     include_dirs = [ "mac" ]
100   } else if (is_linux) {
101     defines += [
102       "ELF",
103     ]
104     include_dirs = [ "linux" ]
105   }
110 source_set("simd") {
111   if (cpu_arch == "x86") {
112     deps = [ ":simd_asm" ]
113     sources = [
114       "simd/jsimd_i386.c",
115     ]
116   } else if (cpu_arch == "x64") {
117     deps = [ ":simd_asm" ]
118     sources = [
119       "simd/jsimd_x86_64.c",
120     ]
121   } else if (cpu_arch == "arm" && arm_version >= 7 &&
122              (arm_use_neon || arm_optionally_use_neon)) {
123     sources = [
124       "simd/jsimd_arm.c",
125       "simd/jsimd_arm_neon.S",
126     ]
127   } else {
128     sources = [ "jsimd_none.c" ]
129   }
132 config("libjpeg_config") {
133   include_dirs = [ "." ]
136 source_set("libjpeg") {
137   sources = [
138     "jcapimin.c",
139     "jcapistd.c",
140     "jccoefct.c",
141     "jccolor.c",
142     "jcdctmgr.c",
143     "jchuff.c",
144     "jchuff.h",
145     "jcinit.c",
146     "jcmainct.c",
147     "jcmarker.c",
148     "jcmaster.c",
149     "jcomapi.c",
150     "jconfig.h",
151     "jcparam.c",
152     "jcphuff.c",
153     "jcprepct.c",
154     "jcsample.c",
155     "jdapimin.c",
156     "jdapistd.c",
157     "jdatadst.c",
158     "jdatasrc.c",
159     "jdcoefct.c",
160     "jdcolor.c",
161     "jdct.h",
162     "jddctmgr.c",
163     "jdhuff.c",
164     "jdhuff.h",
165     "jdinput.c",
166     "jdmainct.c",
167     "jdmarker.c",
168     "jdmaster.c",
169     "jdmerge.c",
170     "jdphuff.c",
171     "jdpostct.c",
172     "jdsample.c",
173     "jerror.c",
174     "jerror.h",
175     "jfdctflt.c",
176     "jfdctfst.c",
177     "jfdctint.c",
178     "jidctflt.c",
179     "jidctfst.c",
180     "jidctint.c",
181     "jidctred.c",
182     "jinclude.h",
183     "jmemmgr.c",
184     "jmemnobs.c",
185     "jmemsys.h",
186     "jmorecfg.h",
187     "jpegint.h",
188     "jpeglib.h",
189     "jpeglibmangler.h",
190     "jquant1.c",
191     "jquant2.c",
192     "jutils.c",
193     "jversion.h",
194   ]
196   defines = [
197     "WITH_SIMD",
198     "MOTION_JPEG_SUPPORTED",
199     "NO_GETENV",
200   ]
202   configs += [ ":libjpeg_config" ]
204   direct_dependent_configs = [ ":libjpeg_config" ]
206   # MemorySanitizer doesn't support assembly code, so keep it disabled in
207   # MSan builds for now.
208   # TODO: Enable on Linux when .asm files are recognized.
209   if (is_msan || is_linux) {
210     sources += [ "jsimd_none.c" ]
211   } else {
212     deps = [ ":simd" ]
213   }
215   # TODO(GYP): Compile the .asm files with YASM as GYP does.