blob: 766b6762c375b7f515d73ce741cf38eba84ec216 [file] [log] [blame]
Bo Xu4c764f32014-12-19 14:29:17 -08001# Copyright 2014 PDFium 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.
4
dsinclair038bf0b2016-04-30 06:00:05 -07005import("../pdfium.gni")
Tom Sepez465ed872015-12-09 14:55:41 -08006
Bo Xu4c764f32014-12-19 14:29:17 -08007group("third_party") {
8 deps = [
9 ":bigint",
Tom Sepez0dfd0302015-10-12 15:38:22 -070010 ":fx_freetype",
Tom Sepez35425892015-02-05 10:03:18 -080011 ":pdfium_base",
Bo Xu4c764f32014-12-19 14:29:17 -080012 ]
13}
14
weili0abe6522016-06-06 14:41:22 -070015config("pdfium_third_party_config") {
caryclark72708b92016-06-13 06:08:25 -070016 configs = [ "..:pdfium_common_config" ]
weili0abe6522016-06-06 14:41:22 -070017}
18
Tom Sepez465ed872015-12-09 14:55:41 -080019source_set("bigint") {
Tom Sepez54172662015-01-09 14:49:47 -080020 configs -= [ "//build/config/compiler:chromium_code" ]
21 configs += [
Tom Sepez6fd997b2015-06-18 17:51:37 -070022 "//build/config/compiler:no_chromium_code",
weili0abe6522016-06-06 14:41:22 -070023 ":pdfium_third_party_config",
Tom Sepez54172662015-01-09 14:49:47 -080024 ]
Bo Xu4c764f32014-12-19 14:29:17 -080025 sources = [
Tom Sepez465ed872015-12-09 14:55:41 -080026 "bigint/BigInteger.cc",
Bo Xu4c764f32014-12-19 14:29:17 -080027 "bigint/BigInteger.hh",
28 "bigint/BigIntegerLibrary.hh",
Bo Xu4c764f32014-12-19 14:29:17 -080029 "bigint/BigIntegerUtils.cc",
Tom Sepez465ed872015-12-09 14:55:41 -080030 "bigint/BigIntegerUtils.hh",
Bo Xu4c764f32014-12-19 14:29:17 -080031 "bigint/BigUnsigned.cc",
Tom Sepez465ed872015-12-09 14:55:41 -080032 "bigint/BigUnsigned.hh",
Bo Xu4c764f32014-12-19 14:29:17 -080033 "bigint/BigUnsignedInABase.cc",
Tom Sepez465ed872015-12-09 14:55:41 -080034 "bigint/BigUnsignedInABase.hh",
35 "bigint/NumberlikeArray.hh",
Bo Xu4c764f32014-12-19 14:29:17 -080036 ]
37}
38
Lei Zhang4f9ccbf2015-10-30 13:04:57 -070039config("fx_freetype_warnings") {
40 visibility = [ ":*" ]
41 if (is_clang) {
42 # open_face_PS_from_sfnt_stream() and open_face_from_buffer() in
43 # ftbase.h are unused.
44 cflags = [ "-Wno-unused-function" ]
45 }
46}
47
Tom Sepez465ed872015-12-09 14:55:41 -080048# Tests may link against this even if the production library doesn't,
49# so it needs to be separate from it.
50static_library("fx_freetype") {
Tom Sepez54172662015-01-09 14:49:47 -080051 configs -= [ "//build/config/compiler:chromium_code" ]
52 configs += [
Tom Sepez6fd997b2015-06-18 17:51:37 -070053 "//build/config/compiler:no_chromium_code",
weili0abe6522016-06-06 14:41:22 -070054 ":pdfium_third_party_config",
Lei Zhang8241df72015-11-06 14:38:48 -080055
Lei Zhang4f9ccbf2015-10-30 13:04:57 -070056 # Must be after no_chromium_code for warning flags to be ordered correctly.
57 ":fx_freetype_warnings",
Bo Xu4c764f32014-12-19 14:29:17 -080058 ]
John Abd-El-Malekef4dce42015-02-02 16:52:07 -080059 defines = [ "FT2_BUILD_LIBRARY" ]
Bo Xu4c764f32014-12-19 14:29:17 -080060 sources = [
Oliver Changcec3f682015-11-05 16:00:40 -080061 "freetype/include/freetype/freetype.h",
62 "freetype/include/freetype/ftmm.h",
63 "freetype/include/freetype/ftotval.h",
64 "freetype/include/freetype/ftoutln.h",
65 "freetype/include/freetype/internal/ftobjs.h",
66 "freetype/include/freetype/internal/ftstream.h",
67 "freetype/include/freetype/internal/tttypes.h",
68 "freetype/include/freetype/tttables.h",
Bo Xu4c764f32014-12-19 14:29:17 -080069 "freetype/include/ft2build.h",
Bo Xu4c764f32014-12-19 14:29:17 -080070 "freetype/src/base/ftbase.c",
Oliver Changcec3f682015-11-05 16:00:40 -080071 "freetype/src/base/ftbase.h",
Bo Xu4c764f32014-12-19 14:29:17 -080072 "freetype/src/base/ftbitmap.c",
73 "freetype/src/base/ftglyph.c",
74 "freetype/src/base/ftinit.c",
75 "freetype/src/base/ftlcdfil.c",
76 "freetype/src/base/ftmm.c",
77 "freetype/src/base/ftsystem.c",
Oliver Changcec3f682015-11-05 16:00:40 -080078 "freetype/src/cff/cff.c",
79 "freetype/src/cff/cffobjs.h",
80 "freetype/src/cff/cfftypes.h",
81 "freetype/src/cid/type1cid.c",
Bo Xu4c764f32014-12-19 14:29:17 -080082 "freetype/src/psaux/psaux.c",
83 "freetype/src/pshinter/pshinter.c",
84 "freetype/src/psnames/psmodule.c",
85 "freetype/src/raster/raster.c",
86 "freetype/src/sfnt/sfnt.c",
87 "freetype/src/smooth/smooth.c",
88 "freetype/src/truetype/truetype.c",
89 "freetype/src/type1/type1.c",
Bo Xu4c764f32014-12-19 14:29:17 -080090 ]
caryclark72708b92016-06-13 06:08:25 -070091 if (pdf_use_skia) {
92 sources += [
93 "freetype/src/base/ftfntfmt.c",
94 "freetype/src/base/ftfstype.c",
95 "freetype/src/base/fttype1.c",
96 ]
97 }
Bo Xu4c764f32014-12-19 14:29:17 -080098}
99
caryclark749c14c2016-05-19 07:01:03 -0700100if (!pdf_use_skia) {
101 config("fx_agg_warnings") {
102 visibility = [ ":*" ]
103 if (is_clang) {
104 # calc_butt_cap() in agg_vcgen_stroke.cpp is unused.
105 cflags = [ "-Wno-unused-function" ]
106 }
Lei Zhang4f9ccbf2015-10-30 13:04:57 -0700107 }
Lei Zhang4f9ccbf2015-10-30 13:04:57 -0700108
caryclark749c14c2016-05-19 07:01:03 -0700109 source_set("fx_agg") {
110 configs -= [ "//build/config/compiler:chromium_code" ]
111 configs += [
112 "//build/config/compiler:no_chromium_code",
weili0abe6522016-06-06 14:41:22 -0700113 ":pdfium_third_party_config",
Lei Zhang8241df72015-11-06 14:38:48 -0800114
caryclark749c14c2016-05-19 07:01:03 -0700115 # Must be after no_chromium_code for warning flags to be ordered correctly.
116 ":fx_agg_warnings",
117 ]
118 sources = [
119 "agg23/agg_basics.h",
120 "agg23/agg_clip_liang_barsky.h",
121 "agg23/agg_conv_dash.h",
122 "agg23/agg_conv_stroke.h",
123 "agg23/agg_curves.cpp",
124 "agg23/agg_curves.h",
125 "agg23/agg_path_storage.cpp",
126 "agg23/agg_path_storage.h",
127 "agg23/agg_rasterizer_scanline_aa.cpp",
128 "agg23/agg_rasterizer_scanline_aa.h",
129 "agg23/agg_renderer_scanline.h",
130 "agg23/agg_rendering_buffer.h",
131 "agg23/agg_scanline_u.h",
132 "agg23/agg_vcgen_dash.cpp",
133 "agg23/agg_vcgen_stroke.cpp",
134 ]
135 }
Tom Sepez8be55752015-06-17 11:05:02 -0700136}
137
Lei Zhange262c9a2015-09-03 16:16:10 -0700138config("fx_lcms2_warnings") {
Tom Sepez465ed872015-12-09 14:55:41 -0800139 visibility = [ ":*" ]
Lei Zhange262c9a2015-09-03 16:16:10 -0700140 if (is_clang) {
Lei Zhang8241df72015-11-06 14:38:48 -0800141 cflags = [
142 # cmslut.cc is sloppy with aggregate initialization. Version 2.7 of this
143 # library doesn't appear to have this problem.
144 "-Wno-missing-braces",
145
146 # FindPrev() in cmsplugin.c is unused.
147 "-Wno-unused-function",
148 ]
Nico Weber2827bdd2015-07-01 14:08:08 -0700149 }
Lei Zhange262c9a2015-09-03 16:16:10 -0700150}
151
152source_set("fx_lcms2") {
Tom Sepez8be55752015-06-17 11:05:02 -0700153 configs -= [ "//build/config/compiler:chromium_code" ]
154 configs += [
155 "//build/config/compiler:no_chromium_code",
weili0abe6522016-06-06 14:41:22 -0700156 ":pdfium_third_party_config",
Lei Zhang8241df72015-11-06 14:38:48 -0800157
Lei Zhang4f9ccbf2015-10-30 13:04:57 -0700158 # Must be after no_chromium_code for warning flags to be ordered correctly.
Nico Weber2827bdd2015-07-01 14:08:08 -0700159 ":fx_lcms2_warnings",
Tom Sepez8be55752015-06-17 11:05:02 -0700160 ]
161 sources = [
162 "lcms2-2.6/include/lcms2.h",
163 "lcms2-2.6/include/lcms2_plugin.h",
164 "lcms2-2.6/src/cmscam02.c",
165 "lcms2-2.6/src/cmscgats.c",
166 "lcms2-2.6/src/cmscnvrt.c",
167 "lcms2-2.6/src/cmserr.c",
168 "lcms2-2.6/src/cmsgamma.c",
169 "lcms2-2.6/src/cmsgmt.c",
170 "lcms2-2.6/src/cmshalf.c",
171 "lcms2-2.6/src/cmsintrp.c",
172 "lcms2-2.6/src/cmsio0.c",
173 "lcms2-2.6/src/cmsio1.c",
174 "lcms2-2.6/src/cmslut.c",
175 "lcms2-2.6/src/cmsmd5.c",
176 "lcms2-2.6/src/cmsmtrx.c",
177 "lcms2-2.6/src/cmsnamed.c",
178 "lcms2-2.6/src/cmsopt.c",
179 "lcms2-2.6/src/cmspack.c",
180 "lcms2-2.6/src/cmspcs.c",
181 "lcms2-2.6/src/cmsplugin.c",
182 "lcms2-2.6/src/cmsps2.c",
183 "lcms2-2.6/src/cmssamp.c",
184 "lcms2-2.6/src/cmssm.c",
185 "lcms2-2.6/src/cmstypes.c",
186 "lcms2-2.6/src/cmsvirt.c",
187 "lcms2-2.6/src/cmswtpnt.c",
188 "lcms2-2.6/src/cmsxform.c",
189 ]
190}
191
Lei Zhang8241df72015-11-06 14:38:48 -0800192# This is only used for standalone builds.
Dan Sinclair4ca48d12016-02-24 14:09:55 -0500193config("jpeg_warnings") {
194 visibility = [ ":*" ]
Lei Zhang8ba5b592016-02-26 12:33:18 -0800195 if (is_clang) {
196 cflags = [ "-Wno-shift-negative-value" ]
197 }
Dan Sinclair4ca48d12016-02-24 14:09:55 -0500198}
199
Lei Zhang8241df72015-11-06 14:38:48 -0800200source_set("jpeg") {
Tom Sepez0a119752015-06-17 15:46:03 -0700201 configs -= [ "//build/config/compiler:chromium_code" ]
202 configs += [
203 "//build/config/compiler:no_chromium_code",
weili0abe6522016-06-06 14:41:22 -0700204 ":pdfium_third_party_config",
Dan Sinclair4ca48d12016-02-24 14:09:55 -0500205
206 # Must be after no_chromium_code for warning flags to be ordered correctly.
207 ":jpeg_warnings",
Tom Sepez0a119752015-06-17 15:46:03 -0700208 ]
209 sources = [
210 "libjpeg/cderror.h",
211 "libjpeg/cdjpeg.h",
212 "libjpeg/fpdfapi_jcapimin.c",
213 "libjpeg/fpdfapi_jcapistd.c",
214 "libjpeg/fpdfapi_jccoefct.c",
215 "libjpeg/fpdfapi_jccolor.c",
216 "libjpeg/fpdfapi_jcdctmgr.c",
217 "libjpeg/fpdfapi_jchuff.c",
218 "libjpeg/fpdfapi_jcinit.c",
219 "libjpeg/fpdfapi_jcmainct.c",
220 "libjpeg/fpdfapi_jcmarker.c",
221 "libjpeg/fpdfapi_jcmaster.c",
222 "libjpeg/fpdfapi_jcomapi.c",
223 "libjpeg/fpdfapi_jcparam.c",
224 "libjpeg/fpdfapi_jcphuff.c",
225 "libjpeg/fpdfapi_jcprepct.c",
226 "libjpeg/fpdfapi_jcsample.c",
227 "libjpeg/fpdfapi_jctrans.c",
228 "libjpeg/fpdfapi_jdapimin.c",
229 "libjpeg/fpdfapi_jdapistd.c",
230 "libjpeg/fpdfapi_jdcoefct.c",
231 "libjpeg/fpdfapi_jdcolor.c",
232 "libjpeg/fpdfapi_jddctmgr.c",
233 "libjpeg/fpdfapi_jdhuff.c",
234 "libjpeg/fpdfapi_jdinput.c",
235 "libjpeg/fpdfapi_jdmainct.c",
236 "libjpeg/fpdfapi_jdmarker.c",
237 "libjpeg/fpdfapi_jdmaster.c",
238 "libjpeg/fpdfapi_jdmerge.c",
239 "libjpeg/fpdfapi_jdphuff.c",
240 "libjpeg/fpdfapi_jdpostct.c",
241 "libjpeg/fpdfapi_jdsample.c",
242 "libjpeg/fpdfapi_jdtrans.c",
243 "libjpeg/fpdfapi_jerror.c",
244 "libjpeg/fpdfapi_jfdctfst.c",
245 "libjpeg/fpdfapi_jfdctint.c",
246 "libjpeg/fpdfapi_jidctfst.c",
247 "libjpeg/fpdfapi_jidctint.c",
248 "libjpeg/fpdfapi_jidctred.c",
249 "libjpeg/fpdfapi_jmemmgr.c",
250 "libjpeg/fpdfapi_jmemnobs.c",
251 "libjpeg/fpdfapi_jutils.c",
252 "libjpeg/jchuff.h",
253 "libjpeg/jconfig.h",
254 "libjpeg/jdct.h",
255 "libjpeg/jdhuff.h",
256 "libjpeg/jerror.h",
257 "libjpeg/jinclude.h",
258 "libjpeg/jmemsys.h",
259 "libjpeg/jmorecfg.h",
260 "libjpeg/jpegint.h",
261 "libjpeg/jpeglib.h",
262 "libjpeg/jversion.h",
263 "libjpeg/makefile",
264 "libjpeg/transupp.h",
265 ]
266}
267
ochange5984e92016-04-05 14:41:25 -0700268config("fx_libopenjpeg_warnings") {
269 visibility = [ ":*" ]
270 if (is_win) {
271 cflags = [
272 # Signed/unsigned comparisons.
273 "/wd4018",
274 ]
275 }
276}
277
Tom Sepez6fd997b2015-06-18 17:51:37 -0700278source_set("fx_libopenjpeg") {
Tom Sepez54172662015-01-09 14:49:47 -0800279 configs -= [ "//build/config/compiler:chromium_code" ]
280 configs += [
Tom Sepez6fd997b2015-06-18 17:51:37 -0700281 "//build/config/compiler:no_chromium_code",
weili0abe6522016-06-06 14:41:22 -0700282 ":pdfium_third_party_config",
ochange5984e92016-04-05 14:41:25 -0700283
284 # Must be after no_chromium_code for warning flags to be ordered correctly.
285 ":fx_libopenjpeg_warnings",
Tom Sepez6fd997b2015-06-18 17:51:37 -0700286 ]
287 sources = [
288 "libopenjpeg20/bio.c",
289 "libopenjpeg20/cio.c",
290 "libopenjpeg20/dwt.c",
291 "libopenjpeg20/event.c",
292 "libopenjpeg20/function_list.c",
293 "libopenjpeg20/image.c",
294 "libopenjpeg20/invert.c",
295 "libopenjpeg20/j2k.c",
296 "libopenjpeg20/jp2.c",
297 "libopenjpeg20/mct.c",
298 "libopenjpeg20/mqc.c",
299 "libopenjpeg20/openjpeg.c",
300 "libopenjpeg20/opj_clock.c",
301 "libopenjpeg20/pi.c",
302 "libopenjpeg20/raw.c",
303 "libopenjpeg20/t1.c",
304 "libopenjpeg20/t2.c",
305 "libopenjpeg20/tcd.c",
306 "libopenjpeg20/tgt.c",
307 ]
308}
309
Tom Sepez5ef9faa2015-10-12 15:43:01 -0700310source_set("fx_lpng") {
311 configs -= [ "//build/config/compiler:chromium_code" ]
312 configs += [
313 "//build/config/compiler:no_chromium_code",
weili0abe6522016-06-06 14:41:22 -0700314 ":pdfium_third_party_config",
Tom Sepez5ef9faa2015-10-12 15:43:01 -0700315 ]
316 sources = [
Lei Zhanga76a6d82016-01-15 19:38:03 -0800317 "libpng16/png.c",
318 "libpng16/png.h",
319 "libpng16/pngconf.h",
320 "libpng16/pngdebug.h",
321 "libpng16/pngerror.c",
322 "libpng16/pngget.c",
323 "libpng16/pnginfo.h",
324 "libpng16/pnglibconf.h",
325 "libpng16/pngmem.c",
326 "libpng16/pngpread.c",
Tom Sepezd87b20e2016-03-02 16:55:26 -0800327 "libpng16/pngprefix.h",
Lei Zhanga76a6d82016-01-15 19:38:03 -0800328 "libpng16/pngpriv.h",
329 "libpng16/pngread.c",
330 "libpng16/pngrio.c",
331 "libpng16/pngrtran.c",
332 "libpng16/pngrutil.c",
333 "libpng16/pngset.c",
334 "libpng16/pngstruct.h",
335 "libpng16/pngtrans.c",
336 "libpng16/pngwio.c",
337 "libpng16/pngwrite.c",
338 "libpng16/pngwtran.c",
339 "libpng16/pngwutil.c",
Tom Sepez5ef9faa2015-10-12 15:43:01 -0700340 ]
341}
342
Tom Sepez465ed872015-12-09 14:55:41 -0800343if (pdf_enable_xfa) {
344 source_set("fx_tiff") {
345 configs -= [ "//build/config/compiler:chromium_code" ]
346 configs += [
347 "//build/config/compiler:no_chromium_code",
weili0abe6522016-06-06 14:41:22 -0700348 ":pdfium_third_party_config",
Tom Sepez465ed872015-12-09 14:55:41 -0800349 ]
weili245ae9c2016-05-10 09:50:20 -0700350 if (is_win) {
351 # Need to undefine the macro since it is redefined in
352 # tif_ojpeg.c and tif_jpeg.c.
353 configs -= [ "//build/config/win:lean_and_mean" ]
354 }
Tom Sepezd87b20e2016-03-02 16:55:26 -0800355 deps = [
356 "//third_party:jpeg",
357 ]
Tom Sepez465ed872015-12-09 14:55:41 -0800358 sources = [
Lei Zhang9c2c87d2016-01-07 15:52:44 -0800359 "libtiff/tif_aux.c",
360 "libtiff/tif_close.c",
361 "libtiff/tif_codec.c",
362 "libtiff/tif_color.c",
363 "libtiff/tif_compress.c",
364 "libtiff/tif_dir.c",
365 "libtiff/tif_dirinfo.c",
366 "libtiff/tif_dirread.c",
367 "libtiff/tif_dirwrite.c",
368 "libtiff/tif_dumpmode.c",
369 "libtiff/tif_error.c",
370 "libtiff/tif_extension.c",
371 "libtiff/tif_fax3.c",
372 "libtiff/tif_fax3sm.c",
373 "libtiff/tif_flush.c",
374 "libtiff/tif_getimage.c",
375 "libtiff/tif_jpeg.c",
376 "libtiff/tif_luv.c",
377 "libtiff/tif_lzw.c",
378 "libtiff/tif_next.c",
379 "libtiff/tif_ojpeg.c",
380 "libtiff/tif_open.c",
381 "libtiff/tif_packbits.c",
382 "libtiff/tif_pixarlog.c",
383 "libtiff/tif_predict.c",
384 "libtiff/tif_print.c",
385 "libtiff/tif_read.c",
386 "libtiff/tif_strip.c",
387 "libtiff/tif_swab.c",
388 "libtiff/tif_thunder.c",
389 "libtiff/tif_tile.c",
390 "libtiff/tif_version.c",
391 "libtiff/tif_warning.c",
392 "libtiff/tif_write.c",
393 "libtiff/tif_zip.c",
Tom Sepezd87b20e2016-03-02 16:55:26 -0800394 "libtiff/tiffiop.h",
395 "libtiff/tiffvers.h",
Tom Sepez465ed872015-12-09 14:55:41 -0800396 ]
397 }
Tom Sepez5ef9faa2015-10-12 15:43:01 -0700398}
399
Dan Sinclair4ca48d12016-02-24 14:09:55 -0500400# TODO(dsinclair): Remove if fixed upstream. https://crbug.com/507712
401config("fx_zlib_warnings") {
402 visibility = [ ":*" ]
Lei Zhang8ba5b592016-02-26 12:33:18 -0800403 if (is_clang) {
404 cflags = [ "-Wno-shift-negative-value" ]
405 }
Dan Sinclair4ca48d12016-02-24 14:09:55 -0500406}
407
Tom Sepez6f93de52015-06-19 12:57:10 -0700408source_set("fx_zlib") {
409 configs -= [ "//build/config/compiler:chromium_code" ]
410 configs += [
411 "//build/config/compiler:no_chromium_code",
weili0abe6522016-06-06 14:41:22 -0700412 ":pdfium_third_party_config",
Dan Sinclair4ca48d12016-02-24 14:09:55 -0500413
414 # Must be after no_chromium_code for warning flags to be ordered correctly.
415 ":fx_zlib_warnings",
Tom Sepez6f93de52015-06-19 12:57:10 -0700416 ]
417 sources = [
418 "zlib_v128/adler32.c",
419 "zlib_v128/compress.c",
420 "zlib_v128/crc32.c",
421 "zlib_v128/deflate.c",
422 "zlib_v128/gzclose.c",
423 "zlib_v128/gzlib.c",
424 "zlib_v128/gzread.c",
425 "zlib_v128/gzwrite.c",
426 "zlib_v128/infback.c",
427 "zlib_v128/inffast.c",
428 "zlib_v128/inflate.c",
429 "zlib_v128/inftrees.c",
430 "zlib_v128/trees.c",
431 "zlib_v128/uncompr.c",
432 "zlib_v128/zutil.c",
433 ]
434}
435
Tom Sepez6fd997b2015-06-18 17:51:37 -0700436source_set("pdfium_base") {
437 configs -= [ "//build/config/compiler:chromium_code" ]
438 configs += [
439 "//build/config/compiler:no_chromium_code",
weili0abe6522016-06-06 14:41:22 -0700440 ":pdfium_third_party_config",
Tom Sepez54172662015-01-09 14:49:47 -0800441 ]
Bo Xu4c764f32014-12-19 14:29:17 -0800442 sources = [
Tom Sepez35425892015-02-05 10:03:18 -0800443 "base/logging.h",
444 "base/macros.h",
Tom Sepez35425892015-02-05 10:03:18 -0800445 "base/numerics/safe_conversions.h",
446 "base/numerics/safe_conversions_impl.h",
447 "base/numerics/safe_math.h",
448 "base/numerics/safe_math_impl.h",
Lei Zhang54285552015-10-09 13:57:36 -0700449 "base/stl_util.h",
Bo Xu4c764f32014-12-19 14:29:17 -0800450 ]
451}