blob: f899bd14816801521ee7b77647ec74aedbd7f73b [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
Tom Sepez465ed872015-12-09 14:55:41 -08005import("../pdfium.gni")
6
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
Tom Sepez465ed872015-12-09 14:55:41 -080015source_set("bigint") {
Tom Sepez54172662015-01-09 14:49:47 -080016 configs -= [ "//build/config/compiler:chromium_code" ]
17 configs += [
Tom Sepez6fd997b2015-06-18 17:51:37 -070018 "//build/config/compiler:no_chromium_code",
19 "//third_party/pdfium:pdfium_config",
Tom Sepez54172662015-01-09 14:49:47 -080020 ]
Bo Xu4c764f32014-12-19 14:29:17 -080021 sources = [
Tom Sepez465ed872015-12-09 14:55:41 -080022 "bigint/BigInteger.cc",
Bo Xu4c764f32014-12-19 14:29:17 -080023 "bigint/BigInteger.hh",
24 "bigint/BigIntegerLibrary.hh",
Bo Xu4c764f32014-12-19 14:29:17 -080025 "bigint/BigIntegerUtils.cc",
Tom Sepez465ed872015-12-09 14:55:41 -080026 "bigint/BigIntegerUtils.hh",
Bo Xu4c764f32014-12-19 14:29:17 -080027 "bigint/BigUnsigned.cc",
Tom Sepez465ed872015-12-09 14:55:41 -080028 "bigint/BigUnsigned.hh",
Bo Xu4c764f32014-12-19 14:29:17 -080029 "bigint/BigUnsignedInABase.cc",
Tom Sepez465ed872015-12-09 14:55:41 -080030 "bigint/BigUnsignedInABase.hh",
31 "bigint/NumberlikeArray.hh",
Bo Xu4c764f32014-12-19 14:29:17 -080032 ]
33}
34
Lei Zhang4f9ccbf2015-10-30 13:04:57 -070035config("fx_freetype_warnings") {
36 visibility = [ ":*" ]
37 if (is_clang) {
38 # open_face_PS_from_sfnt_stream() and open_face_from_buffer() in
39 # ftbase.h are unused.
40 cflags = [ "-Wno-unused-function" ]
41 }
42}
43
Tom Sepez465ed872015-12-09 14:55:41 -080044# Tests may link against this even if the production library doesn't,
45# so it needs to be separate from it.
46static_library("fx_freetype") {
Tom Sepez54172662015-01-09 14:49:47 -080047 configs -= [ "//build/config/compiler:chromium_code" ]
48 configs += [
Tom Sepez6fd997b2015-06-18 17:51:37 -070049 "//build/config/compiler:no_chromium_code",
50 "//third_party/pdfium:pdfium_config",
Lei Zhang8241df72015-11-06 14:38:48 -080051
Lei Zhang4f9ccbf2015-10-30 13:04:57 -070052 # Must be after no_chromium_code for warning flags to be ordered correctly.
53 ":fx_freetype_warnings",
Bo Xu4c764f32014-12-19 14:29:17 -080054 ]
John Abd-El-Malekef4dce42015-02-02 16:52:07 -080055 defines = [ "FT2_BUILD_LIBRARY" ]
Bo Xu4c764f32014-12-19 14:29:17 -080056 sources = [
Oliver Changcec3f682015-11-05 16:00:40 -080057 "freetype/include/freetype/freetype.h",
58 "freetype/include/freetype/ftmm.h",
59 "freetype/include/freetype/ftotval.h",
60 "freetype/include/freetype/ftoutln.h",
61 "freetype/include/freetype/internal/ftobjs.h",
62 "freetype/include/freetype/internal/ftstream.h",
63 "freetype/include/freetype/internal/tttypes.h",
64 "freetype/include/freetype/tttables.h",
Bo Xu4c764f32014-12-19 14:29:17 -080065 "freetype/include/ft2build.h",
Bo Xu4c764f32014-12-19 14:29:17 -080066 "freetype/src/base/ftbase.c",
Oliver Changcec3f682015-11-05 16:00:40 -080067 "freetype/src/base/ftbase.h",
Bo Xu4c764f32014-12-19 14:29:17 -080068 "freetype/src/base/ftbitmap.c",
69 "freetype/src/base/ftglyph.c",
70 "freetype/src/base/ftinit.c",
71 "freetype/src/base/ftlcdfil.c",
72 "freetype/src/base/ftmm.c",
73 "freetype/src/base/ftsystem.c",
Oliver Changcec3f682015-11-05 16:00:40 -080074 "freetype/src/cff/cff.c",
75 "freetype/src/cff/cffobjs.h",
76 "freetype/src/cff/cfftypes.h",
77 "freetype/src/cid/type1cid.c",
Bo Xu4c764f32014-12-19 14:29:17 -080078 "freetype/src/psaux/psaux.c",
79 "freetype/src/pshinter/pshinter.c",
80 "freetype/src/psnames/psmodule.c",
81 "freetype/src/raster/raster.c",
82 "freetype/src/sfnt/sfnt.c",
83 "freetype/src/smooth/smooth.c",
84 "freetype/src/truetype/truetype.c",
85 "freetype/src/type1/type1.c",
Bo Xu4c764f32014-12-19 14:29:17 -080086 ]
87}
88
Lei Zhang4f9ccbf2015-10-30 13:04:57 -070089config("fx_agg_warnings") {
90 visibility = [ ":*" ]
91 if (is_clang) {
92 # calc_butt_cap() in agg_vcgen_stroke.cpp is unused.
93 cflags = [ "-Wno-unused-function" ]
94 }
95}
96
Tom Sepez8be55752015-06-17 11:05:02 -070097source_set("fx_agg") {
98 configs -= [ "//build/config/compiler:chromium_code" ]
99 configs += [
100 "//build/config/compiler:no_chromium_code",
101 "//third_party/pdfium:pdfium_config",
Lei Zhang8241df72015-11-06 14:38:48 -0800102
Lei Zhang4f9ccbf2015-10-30 13:04:57 -0700103 # Must be after no_chromium_code for warning flags to be ordered correctly.
104 ":fx_agg_warnings",
Tom Sepez8be55752015-06-17 11:05:02 -0700105 ]
106 sources = [
107 "agg23/agg_basics.h",
108 "agg23/agg_clip_liang_barsky.h",
109 "agg23/agg_conv_dash.h",
110 "agg23/agg_conv_stroke.h",
111 "agg23/agg_curves.cpp",
112 "agg23/agg_curves.h",
113 "agg23/agg_path_storage.cpp",
114 "agg23/agg_path_storage.h",
115 "agg23/agg_rasterizer_scanline_aa.cpp",
116 "agg23/agg_rasterizer_scanline_aa.h",
117 "agg23/agg_renderer_scanline.h",
118 "agg23/agg_rendering_buffer.h",
119 "agg23/agg_scanline_u.h",
120 "agg23/agg_vcgen_dash.cpp",
121 "agg23/agg_vcgen_stroke.cpp",
122 ]
123}
124
Lei Zhange262c9a2015-09-03 16:16:10 -0700125config("fx_lcms2_warnings") {
Tom Sepez465ed872015-12-09 14:55:41 -0800126 visibility = [ ":*" ]
Lei Zhange262c9a2015-09-03 16:16:10 -0700127 if (is_clang) {
Lei Zhang8241df72015-11-06 14:38:48 -0800128 cflags = [
129 # cmslut.cc is sloppy with aggregate initialization. Version 2.7 of this
130 # library doesn't appear to have this problem.
131 "-Wno-missing-braces",
132
133 # FindPrev() in cmsplugin.c is unused.
134 "-Wno-unused-function",
135 ]
Nico Weber2827bdd2015-07-01 14:08:08 -0700136 }
Lei Zhange262c9a2015-09-03 16:16:10 -0700137}
138
139source_set("fx_lcms2") {
Tom Sepez8be55752015-06-17 11:05:02 -0700140 configs -= [ "//build/config/compiler:chromium_code" ]
141 configs += [
142 "//build/config/compiler:no_chromium_code",
143 "//third_party/pdfium:pdfium_config",
Lei Zhang8241df72015-11-06 14:38:48 -0800144
Lei Zhang4f9ccbf2015-10-30 13:04:57 -0700145 # Must be after no_chromium_code for warning flags to be ordered correctly.
Nico Weber2827bdd2015-07-01 14:08:08 -0700146 ":fx_lcms2_warnings",
Tom Sepez8be55752015-06-17 11:05:02 -0700147 ]
148 sources = [
149 "lcms2-2.6/include/lcms2.h",
150 "lcms2-2.6/include/lcms2_plugin.h",
151 "lcms2-2.6/src/cmscam02.c",
152 "lcms2-2.6/src/cmscgats.c",
153 "lcms2-2.6/src/cmscnvrt.c",
154 "lcms2-2.6/src/cmserr.c",
155 "lcms2-2.6/src/cmsgamma.c",
156 "lcms2-2.6/src/cmsgmt.c",
157 "lcms2-2.6/src/cmshalf.c",
158 "lcms2-2.6/src/cmsintrp.c",
159 "lcms2-2.6/src/cmsio0.c",
160 "lcms2-2.6/src/cmsio1.c",
161 "lcms2-2.6/src/cmslut.c",
162 "lcms2-2.6/src/cmsmd5.c",
163 "lcms2-2.6/src/cmsmtrx.c",
164 "lcms2-2.6/src/cmsnamed.c",
165 "lcms2-2.6/src/cmsopt.c",
166 "lcms2-2.6/src/cmspack.c",
167 "lcms2-2.6/src/cmspcs.c",
168 "lcms2-2.6/src/cmsplugin.c",
169 "lcms2-2.6/src/cmsps2.c",
170 "lcms2-2.6/src/cmssamp.c",
171 "lcms2-2.6/src/cmssm.c",
172 "lcms2-2.6/src/cmstypes.c",
173 "lcms2-2.6/src/cmsvirt.c",
174 "lcms2-2.6/src/cmswtpnt.c",
175 "lcms2-2.6/src/cmsxform.c",
176 ]
177}
178
Lei Zhang8241df72015-11-06 14:38:48 -0800179# This is only used for standalone builds.
Dan Sinclair4ca48d12016-02-24 14:09:55 -0500180config("jpeg_warnings") {
181 visibility = [ ":*" ]
Lei Zhang8ba5b592016-02-26 12:33:18 -0800182 if (is_clang) {
183 cflags = [ "-Wno-shift-negative-value" ]
184 }
Dan Sinclair4ca48d12016-02-24 14:09:55 -0500185}
186
Lei Zhang8241df72015-11-06 14:38:48 -0800187source_set("jpeg") {
Tom Sepez0a119752015-06-17 15:46:03 -0700188 configs -= [ "//build/config/compiler:chromium_code" ]
189 configs += [
190 "//build/config/compiler:no_chromium_code",
191 "//third_party/pdfium:pdfium_config",
Dan Sinclair4ca48d12016-02-24 14:09:55 -0500192
193 # Must be after no_chromium_code for warning flags to be ordered correctly.
194 ":jpeg_warnings",
Tom Sepez0a119752015-06-17 15:46:03 -0700195 ]
196 sources = [
197 "libjpeg/cderror.h",
198 "libjpeg/cdjpeg.h",
199 "libjpeg/fpdfapi_jcapimin.c",
200 "libjpeg/fpdfapi_jcapistd.c",
201 "libjpeg/fpdfapi_jccoefct.c",
202 "libjpeg/fpdfapi_jccolor.c",
203 "libjpeg/fpdfapi_jcdctmgr.c",
204 "libjpeg/fpdfapi_jchuff.c",
205 "libjpeg/fpdfapi_jcinit.c",
206 "libjpeg/fpdfapi_jcmainct.c",
207 "libjpeg/fpdfapi_jcmarker.c",
208 "libjpeg/fpdfapi_jcmaster.c",
209 "libjpeg/fpdfapi_jcomapi.c",
210 "libjpeg/fpdfapi_jcparam.c",
211 "libjpeg/fpdfapi_jcphuff.c",
212 "libjpeg/fpdfapi_jcprepct.c",
213 "libjpeg/fpdfapi_jcsample.c",
214 "libjpeg/fpdfapi_jctrans.c",
215 "libjpeg/fpdfapi_jdapimin.c",
216 "libjpeg/fpdfapi_jdapistd.c",
217 "libjpeg/fpdfapi_jdcoefct.c",
218 "libjpeg/fpdfapi_jdcolor.c",
219 "libjpeg/fpdfapi_jddctmgr.c",
220 "libjpeg/fpdfapi_jdhuff.c",
221 "libjpeg/fpdfapi_jdinput.c",
222 "libjpeg/fpdfapi_jdmainct.c",
223 "libjpeg/fpdfapi_jdmarker.c",
224 "libjpeg/fpdfapi_jdmaster.c",
225 "libjpeg/fpdfapi_jdmerge.c",
226 "libjpeg/fpdfapi_jdphuff.c",
227 "libjpeg/fpdfapi_jdpostct.c",
228 "libjpeg/fpdfapi_jdsample.c",
229 "libjpeg/fpdfapi_jdtrans.c",
230 "libjpeg/fpdfapi_jerror.c",
231 "libjpeg/fpdfapi_jfdctfst.c",
232 "libjpeg/fpdfapi_jfdctint.c",
233 "libjpeg/fpdfapi_jidctfst.c",
234 "libjpeg/fpdfapi_jidctint.c",
235 "libjpeg/fpdfapi_jidctred.c",
236 "libjpeg/fpdfapi_jmemmgr.c",
237 "libjpeg/fpdfapi_jmemnobs.c",
238 "libjpeg/fpdfapi_jutils.c",
239 "libjpeg/jchuff.h",
240 "libjpeg/jconfig.h",
241 "libjpeg/jdct.h",
242 "libjpeg/jdhuff.h",
243 "libjpeg/jerror.h",
244 "libjpeg/jinclude.h",
245 "libjpeg/jmemsys.h",
246 "libjpeg/jmorecfg.h",
247 "libjpeg/jpegint.h",
248 "libjpeg/jpeglib.h",
249 "libjpeg/jversion.h",
250 "libjpeg/makefile",
251 "libjpeg/transupp.h",
252 ]
253}
254
ochange5984e92016-04-05 14:41:25 -0700255config("fx_libopenjpeg_warnings") {
256 visibility = [ ":*" ]
257 if (is_win) {
258 cflags = [
259 # Signed/unsigned comparisons.
260 "/wd4018",
261 ]
262 }
263}
264
Tom Sepez6fd997b2015-06-18 17:51:37 -0700265source_set("fx_libopenjpeg") {
Tom Sepez54172662015-01-09 14:49:47 -0800266 configs -= [ "//build/config/compiler:chromium_code" ]
267 configs += [
Tom Sepez6fd997b2015-06-18 17:51:37 -0700268 "//build/config/compiler:no_chromium_code",
269 "//third_party/pdfium:pdfium_config",
ochange5984e92016-04-05 14:41:25 -0700270
271 # Must be after no_chromium_code for warning flags to be ordered correctly.
272 ":fx_libopenjpeg_warnings",
Tom Sepez6fd997b2015-06-18 17:51:37 -0700273 ]
274 sources = [
275 "libopenjpeg20/bio.c",
276 "libopenjpeg20/cio.c",
277 "libopenjpeg20/dwt.c",
278 "libopenjpeg20/event.c",
279 "libopenjpeg20/function_list.c",
280 "libopenjpeg20/image.c",
281 "libopenjpeg20/invert.c",
282 "libopenjpeg20/j2k.c",
283 "libopenjpeg20/jp2.c",
284 "libopenjpeg20/mct.c",
285 "libopenjpeg20/mqc.c",
286 "libopenjpeg20/openjpeg.c",
287 "libopenjpeg20/opj_clock.c",
288 "libopenjpeg20/pi.c",
289 "libopenjpeg20/raw.c",
290 "libopenjpeg20/t1.c",
291 "libopenjpeg20/t2.c",
292 "libopenjpeg20/tcd.c",
293 "libopenjpeg20/tgt.c",
294 ]
295}
296
Tom Sepez5ef9faa2015-10-12 15:43:01 -0700297source_set("fx_lpng") {
298 configs -= [ "//build/config/compiler:chromium_code" ]
299 configs += [
300 "//build/config/compiler:no_chromium_code",
301 "//third_party/pdfium:pdfium_config",
302 ]
303 sources = [
Lei Zhanga76a6d82016-01-15 19:38:03 -0800304 "libpng16/png.c",
305 "libpng16/png.h",
306 "libpng16/pngconf.h",
307 "libpng16/pngdebug.h",
308 "libpng16/pngerror.c",
309 "libpng16/pngget.c",
310 "libpng16/pnginfo.h",
311 "libpng16/pnglibconf.h",
312 "libpng16/pngmem.c",
313 "libpng16/pngpread.c",
Tom Sepezd87b20e2016-03-02 16:55:26 -0800314 "libpng16/pngprefix.h",
Lei Zhanga76a6d82016-01-15 19:38:03 -0800315 "libpng16/pngpriv.h",
316 "libpng16/pngread.c",
317 "libpng16/pngrio.c",
318 "libpng16/pngrtran.c",
319 "libpng16/pngrutil.c",
320 "libpng16/pngset.c",
321 "libpng16/pngstruct.h",
322 "libpng16/pngtrans.c",
323 "libpng16/pngwio.c",
324 "libpng16/pngwrite.c",
325 "libpng16/pngwtran.c",
326 "libpng16/pngwutil.c",
Tom Sepez5ef9faa2015-10-12 15:43:01 -0700327 ]
328}
329
Tom Sepez465ed872015-12-09 14:55:41 -0800330if (pdf_enable_xfa) {
331 source_set("fx_tiff") {
332 configs -= [ "//build/config/compiler:chromium_code" ]
333 configs += [
334 "//build/config/compiler:no_chromium_code",
335 "//third_party/pdfium:pdfium_config",
336 ]
Tom Sepezd87b20e2016-03-02 16:55:26 -0800337 deps = [
338 "//third_party:jpeg",
339 ]
Tom Sepez465ed872015-12-09 14:55:41 -0800340 sources = [
Lei Zhang9c2c87d2016-01-07 15:52:44 -0800341 "libtiff/tif_aux.c",
342 "libtiff/tif_close.c",
343 "libtiff/tif_codec.c",
344 "libtiff/tif_color.c",
345 "libtiff/tif_compress.c",
346 "libtiff/tif_dir.c",
347 "libtiff/tif_dirinfo.c",
348 "libtiff/tif_dirread.c",
349 "libtiff/tif_dirwrite.c",
350 "libtiff/tif_dumpmode.c",
351 "libtiff/tif_error.c",
352 "libtiff/tif_extension.c",
353 "libtiff/tif_fax3.c",
354 "libtiff/tif_fax3sm.c",
355 "libtiff/tif_flush.c",
356 "libtiff/tif_getimage.c",
357 "libtiff/tif_jpeg.c",
358 "libtiff/tif_luv.c",
359 "libtiff/tif_lzw.c",
360 "libtiff/tif_next.c",
361 "libtiff/tif_ojpeg.c",
362 "libtiff/tif_open.c",
363 "libtiff/tif_packbits.c",
364 "libtiff/tif_pixarlog.c",
365 "libtiff/tif_predict.c",
366 "libtiff/tif_print.c",
367 "libtiff/tif_read.c",
368 "libtiff/tif_strip.c",
369 "libtiff/tif_swab.c",
370 "libtiff/tif_thunder.c",
371 "libtiff/tif_tile.c",
372 "libtiff/tif_version.c",
373 "libtiff/tif_warning.c",
374 "libtiff/tif_write.c",
375 "libtiff/tif_zip.c",
Tom Sepezd87b20e2016-03-02 16:55:26 -0800376 "libtiff/tiffiop.h",
377 "libtiff/tiffvers.h",
Tom Sepez465ed872015-12-09 14:55:41 -0800378 ]
379 }
Tom Sepez5ef9faa2015-10-12 15:43:01 -0700380}
381
Dan Sinclair4ca48d12016-02-24 14:09:55 -0500382# TODO(dsinclair): Remove if fixed upstream. https://crbug.com/507712
383config("fx_zlib_warnings") {
384 visibility = [ ":*" ]
Lei Zhang8ba5b592016-02-26 12:33:18 -0800385 if (is_clang) {
386 cflags = [ "-Wno-shift-negative-value" ]
387 }
Dan Sinclair4ca48d12016-02-24 14:09:55 -0500388}
389
Tom Sepez6f93de52015-06-19 12:57:10 -0700390source_set("fx_zlib") {
391 configs -= [ "//build/config/compiler:chromium_code" ]
392 configs += [
393 "//build/config/compiler:no_chromium_code",
394 "//third_party/pdfium:pdfium_config",
Dan Sinclair4ca48d12016-02-24 14:09:55 -0500395
396 # Must be after no_chromium_code for warning flags to be ordered correctly.
397 ":fx_zlib_warnings",
Tom Sepez6f93de52015-06-19 12:57:10 -0700398 ]
399 sources = [
400 "zlib_v128/adler32.c",
401 "zlib_v128/compress.c",
402 "zlib_v128/crc32.c",
403 "zlib_v128/deflate.c",
404 "zlib_v128/gzclose.c",
405 "zlib_v128/gzlib.c",
406 "zlib_v128/gzread.c",
407 "zlib_v128/gzwrite.c",
408 "zlib_v128/infback.c",
409 "zlib_v128/inffast.c",
410 "zlib_v128/inflate.c",
411 "zlib_v128/inftrees.c",
412 "zlib_v128/trees.c",
413 "zlib_v128/uncompr.c",
414 "zlib_v128/zutil.c",
415 ]
416}
417
Tom Sepez6fd997b2015-06-18 17:51:37 -0700418source_set("pdfium_base") {
419 configs -= [ "//build/config/compiler:chromium_code" ]
420 configs += [
421 "//build/config/compiler:no_chromium_code",
422 "//third_party/pdfium:pdfium_config",
Tom Sepez54172662015-01-09 14:49:47 -0800423 ]
Bo Xu4c764f32014-12-19 14:29:17 -0800424 sources = [
Tom Sepez35425892015-02-05 10:03:18 -0800425 "base/logging.h",
426 "base/macros.h",
Tom Sepez35425892015-02-05 10:03:18 -0800427 "base/numerics/safe_conversions.h",
428 "base/numerics/safe_conversions_impl.h",
429 "base/numerics/safe_math.h",
430 "base/numerics/safe_math_impl.h",
Lei Zhang54285552015-10-09 13:57:36 -0700431 "base/stl_util.h",
Bo Xu4c764f32014-12-19 14:29:17 -0800432 ]
433}