1# 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
5import("//build/config/arm.gni")
6import("//build/config/linux/pkg_config.gni")
7import("//build_overrides/build.gni")
8import("../pdfium.gni")
9
10group("third_party") {
11  deps = [
12    ":pdfium_base",
13    ":skia_shared",
14  ]
15  if (pdf_bundle_freetype) {
16    deps += [ ":fx_freetype" ]
17  }
18}
19
20config("pdfium_third_party_config") {
21  configs = [
22    "..:pdfium_common_config",
23    "..:pdfium_public_config",
24  ]
25}
26
27if (pdf_enable_xfa) {
28  source_set("bigint") {
29    configs -= [ "//build/config/compiler:chromium_code" ]
30    configs += [
31      "//build/config/compiler:no_chromium_code",
32      ":pdfium_third_party_config",
33    ]
34    sources = [
35      "bigint/BigInteger.cc",
36      "bigint/BigInteger.hh",
37      "bigint/BigIntegerLibrary.hh",
38      "bigint/BigIntegerUtils.cc",
39      "bigint/BigIntegerUtils.hh",
40      "bigint/BigUnsigned.cc",
41      "bigint/BigUnsigned.hh",
42      "bigint/BigUnsignedInABase.cc",
43      "bigint/BigUnsignedInABase.hh",
44      "bigint/NumberlikeArray.hh",
45    ]
46  }
47}
48
49if (pdf_bundle_freetype) {
50  config("fx_freetype_warnings") {
51    visibility = [ ":*" ]
52    if (is_clang) {
53      # open_face_PS_from_sfnt_stream() and open_face_from_buffer() in
54      # ftbase.h are unused.
55      #
56      # ttgload.c casts from unsigned int to unsigned long to void*.
57      cflags = [
58        "-Wno-unused-function",
59        "-Wno-int-to-void-pointer-cast",
60      ]
61    }
62  }
63
64  config("freetype_public_includes_config") {
65    # The relative freetype/include path points to PDFium's custom config.
66    # The absolute path points to whatever copy of FreeType is in
67    # //third_party/freetype.
68    include_dirs = [
69      "freetype/include",
70      "//third_party/freetype/src/include",
71    ]
72    defines = [
73      # GN currently does not escape '<' and '>' when generating xml based
74      # Visual Studio project files. As a result, use quotes instead of pointy
75      # brackets in these defines.
76      "FT_CONFIG_MODULES_H=\"freetype-custom-config/ftmodule.h\"",
77      "FT_CONFIG_OPTIONS_H=\"freetype-custom-config/ftoption.h\"",
78    ]
79  }
80
81  # Tests may link against this even if the production library doesn't,
82  # so it needs to be separate from it.
83  source_set("fx_freetype") {
84    configs -= [ "//build/config/compiler:chromium_code" ]
85    configs += [
86      "//build/config/compiler:no_chromium_code",
87      ":pdfium_third_party_config",
88
89      # Must be after no_chromium_code for warning flags to be ordered correctly.
90      ":fx_freetype_warnings",
91    ]
92
93    public_configs = [ ":freetype_public_includes_config" ]
94
95    defines = [ "FT2_BUILD_LIBRARY" ]
96    sources = [
97      "//third_party/freetype/include/pstables.h",
98      "//third_party/freetype/src/include/freetype/config/ftconfig.h",
99      "//third_party/freetype/src/include/freetype/config/ftheader.h",
100      "//third_party/freetype/src/include/freetype/config/ftmodule.h",
101      "//third_party/freetype/src/include/freetype/config/ftoption.h",
102      "//third_party/freetype/src/include/freetype/config/ftstdlib.h",
103      "//third_party/freetype/src/include/freetype/freetype.h",
104      "//third_party/freetype/src/include/freetype/ftadvanc.h",
105      "//third_party/freetype/src/include/freetype/ftbbox.h",
106      "//third_party/freetype/src/include/freetype/ftbdf.h",
107      "//third_party/freetype/src/include/freetype/ftbitmap.h",
108      "//third_party/freetype/src/include/freetype/ftbzip2.h",
109      "//third_party/freetype/src/include/freetype/ftcache.h",
110      "//third_party/freetype/src/include/freetype/ftchapters.h",
111      "//third_party/freetype/src/include/freetype/ftcid.h",
112      "//third_party/freetype/src/include/freetype/ftcolor.h",
113      "//third_party/freetype/src/include/freetype/ftdriver.h",
114      "//third_party/freetype/src/include/freetype/fterrdef.h",
115      "//third_party/freetype/src/include/freetype/fterrors.h",
116      "//third_party/freetype/src/include/freetype/ftfntfmt.h",
117      "//third_party/freetype/src/include/freetype/ftgasp.h",
118      "//third_party/freetype/src/include/freetype/ftglyph.h",
119      "//third_party/freetype/src/include/freetype/ftgxval.h",
120      "//third_party/freetype/src/include/freetype/ftgzip.h",
121      "//third_party/freetype/src/include/freetype/ftimage.h",
122      "//third_party/freetype/src/include/freetype/ftincrem.h",
123      "//third_party/freetype/src/include/freetype/ftlcdfil.h",
124      "//third_party/freetype/src/include/freetype/ftlist.h",
125      "//third_party/freetype/src/include/freetype/ftlzw.h",
126      "//third_party/freetype/src/include/freetype/ftmac.h",
127      "//third_party/freetype/src/include/freetype/ftmm.h",
128      "//third_party/freetype/src/include/freetype/ftmodapi.h",
129      "//third_party/freetype/src/include/freetype/ftmoderr.h",
130      "//third_party/freetype/src/include/freetype/ftotval.h",
131      "//third_party/freetype/src/include/freetype/ftoutln.h",
132      "//third_party/freetype/src/include/freetype/ftparams.h",
133      "//third_party/freetype/src/include/freetype/ftpfr.h",
134      "//third_party/freetype/src/include/freetype/ftrender.h",
135      "//third_party/freetype/src/include/freetype/ftsizes.h",
136      "//third_party/freetype/src/include/freetype/ftsnames.h",
137      "//third_party/freetype/src/include/freetype/ftstroke.h",
138      "//third_party/freetype/src/include/freetype/ftsynth.h",
139      "//third_party/freetype/src/include/freetype/ftsystem.h",
140      "//third_party/freetype/src/include/freetype/fttrigon.h",
141      "//third_party/freetype/src/include/freetype/fttypes.h",
142      "//third_party/freetype/src/include/freetype/ftwinfnt.h",
143      "//third_party/freetype/src/include/freetype/internal/autohint.h",
144      "//third_party/freetype/src/include/freetype/internal/cffotypes.h",
145      "//third_party/freetype/src/include/freetype/internal/cfftypes.h",
146      "//third_party/freetype/src/include/freetype/internal/ftcalc.h",
147      "//third_party/freetype/src/include/freetype/internal/ftdebug.h",
148      "//third_party/freetype/src/include/freetype/internal/ftdrv.h",
149      "//third_party/freetype/src/include/freetype/internal/ftgloadr.h",
150      "//third_party/freetype/src/include/freetype/internal/fthash.h",
151      "//third_party/freetype/src/include/freetype/internal/ftmemory.h",
152      "//third_party/freetype/src/include/freetype/internal/ftobjs.h",
153      "//third_party/freetype/src/include/freetype/internal/ftpsprop.h",
154      "//third_party/freetype/src/include/freetype/internal/ftrfork.h",
155      "//third_party/freetype/src/include/freetype/internal/ftserv.h",
156      "//third_party/freetype/src/include/freetype/internal/ftstream.h",
157      "//third_party/freetype/src/include/freetype/internal/fttrace.h",
158      "//third_party/freetype/src/include/freetype/internal/ftvalid.h",
159      "//third_party/freetype/src/include/freetype/internal/internal.h",
160      "//third_party/freetype/src/include/freetype/internal/psaux.h",
161      "//third_party/freetype/src/include/freetype/internal/pshints.h",
162      "//third_party/freetype/src/include/freetype/internal/services/svbdf.h",
163      "//third_party/freetype/src/include/freetype/internal/services/svcfftl.h",
164      "//third_party/freetype/src/include/freetype/internal/services/svcid.h",
165      "//third_party/freetype/src/include/freetype/internal/services/svfntfmt.h",
166      "//third_party/freetype/src/include/freetype/internal/services/svgldict.h",
167      "//third_party/freetype/src/include/freetype/internal/services/svgxval.h",
168      "//third_party/freetype/src/include/freetype/internal/services/svkern.h",
169      "//third_party/freetype/src/include/freetype/internal/services/svmetric.h",
170      "//third_party/freetype/src/include/freetype/internal/services/svmm.h",
171      "//third_party/freetype/src/include/freetype/internal/services/svotval.h",
172      "//third_party/freetype/src/include/freetype/internal/services/svpfr.h",
173      "//third_party/freetype/src/include/freetype/internal/services/svpostnm.h",
174      "//third_party/freetype/src/include/freetype/internal/services/svprop.h",
175      "//third_party/freetype/src/include/freetype/internal/services/svpscmap.h",
176      "//third_party/freetype/src/include/freetype/internal/services/svpsinfo.h",
177      "//third_party/freetype/src/include/freetype/internal/services/svsfnt.h",
178      "//third_party/freetype/src/include/freetype/internal/services/svttcmap.h",
179      "//third_party/freetype/src/include/freetype/internal/services/svtteng.h",
180      "//third_party/freetype/src/include/freetype/internal/services/svttglyf.h",
181      "//third_party/freetype/src/include/freetype/internal/services/svwinfnt.h",
182      "//third_party/freetype/src/include/freetype/internal/sfnt.h",
183      "//third_party/freetype/src/include/freetype/internal/t1types.h",
184      "//third_party/freetype/src/include/freetype/internal/tttypes.h",
185      "//third_party/freetype/src/include/freetype/t1tables.h",
186      "//third_party/freetype/src/include/freetype/ttnameid.h",
187      "//third_party/freetype/src/include/freetype/tttables.h",
188      "//third_party/freetype/src/include/freetype/tttags.h",
189      "//third_party/freetype/src/include/ft2build.h",
190      "//third_party/freetype/src/src/base/ftbase.c",
191      "//third_party/freetype/src/src/base/ftbase.h",
192      "//third_party/freetype/src/src/base/ftbitmap.c",
193      "//third_party/freetype/src/src/base/ftdebug.c",
194      "//third_party/freetype/src/src/base/ftglyph.c",
195      "//third_party/freetype/src/src/base/ftinit.c",
196      "//third_party/freetype/src/src/base/ftmm.c",
197      "//third_party/freetype/src/src/base/ftsystem.c",
198      "//third_party/freetype/src/src/cff/cff.c",
199      "//third_party/freetype/src/src/cff/cffobjs.h",
200      "//third_party/freetype/src/src/cid/type1cid.c",
201      "//third_party/freetype/src/src/psaux/psaux.c",
202      "//third_party/freetype/src/src/pshinter/pshinter.c",
203      "//third_party/freetype/src/src/psnames/psmodule.c",
204      "//third_party/freetype/src/src/raster/raster.c",
205      "//third_party/freetype/src/src/sfnt/sfnt.c",
206      "//third_party/freetype/src/src/smooth/smooth.c",
207      "//third_party/freetype/src/src/truetype/truetype.c",
208      "//third_party/freetype/src/src/type1/type1.c",
209    ]
210    if (pdf_use_skia || pdf_use_skia_paths) {
211      sources += [
212        "//third_party/freetype/src/include/freetype/ftsynth.h",
213        "//third_party/freetype/src/src/base/ftfstype.c",
214        "//third_party/freetype/src/src/base/fttype1.c",
215      ]
216    }
217  }
218}
219
220if (!pdf_use_skia && !pdf_use_skia_paths) {
221  config("fx_agg_warnings") {
222    visibility = [ ":*" ]
223    if (is_clang) {
224      # calc_butt_cap() in agg_vcgen_stroke.cpp is unused.
225      cflags = [ "-Wno-unused-function" ]
226    }
227  }
228
229  source_set("fx_agg") {
230    configs -= [ "//build/config/compiler:chromium_code" ]
231    configs += [
232      "//build/config/compiler:no_chromium_code",
233      ":pdfium_third_party_config",
234
235      # Must be after no_chromium_code for warning flags to be ordered correctly.
236      ":fx_agg_warnings",
237    ]
238    sources = [
239      "agg23/agg_basics.h",
240      "agg23/agg_clip_liang_barsky.h",
241      "agg23/agg_conv_dash.h",
242      "agg23/agg_conv_stroke.h",
243      "agg23/agg_curves.cpp",
244      "agg23/agg_curves.h",
245      "agg23/agg_path_storage.cpp",
246      "agg23/agg_path_storage.h",
247      "agg23/agg_rasterizer_scanline_aa.cpp",
248      "agg23/agg_rasterizer_scanline_aa.h",
249      "agg23/agg_renderer_scanline.h",
250      "agg23/agg_rendering_buffer.h",
251      "agg23/agg_scanline_u.h",
252      "agg23/agg_vcgen_dash.cpp",
253      "agg23/agg_vcgen_stroke.cpp",
254    ]
255    deps = [ "../core/fxcrt" ]
256  }
257}
258
259config("fx_lcms2_warnings") {
260  visibility = [ ":*" ]
261  if (is_clang) {
262    cflags = [
263      # cmslut.cc is sloppy with aggregate initialization. Version 2.7 of this
264      # library doesn't appear to have this problem.
265      "-Wno-missing-braces",
266
267      # FindPrev() in cmsplugin.c is unused.
268      "-Wno-unused-function",
269    ]
270  }
271}
272
273source_set("fx_lcms2") {
274  configs -= [ "//build/config/compiler:chromium_code" ]
275  configs += [
276    "//build/config/compiler:no_chromium_code",
277    "//build/config/sanitizers:cfi_icall_generalize_pointers",
278    ":pdfium_third_party_config",
279
280    # Must be after no_chromium_code for warning flags to be ordered correctly.
281    ":fx_lcms2_warnings",
282  ]
283  sources = [
284    "lcms/include/lcms2.h",
285    "lcms/include/lcms2_plugin.h",
286    "lcms/src/cmsalpha.c",
287    "lcms/src/cmscam02.c",
288    "lcms/src/cmscgats.c",
289    "lcms/src/cmscnvrt.c",
290    "lcms/src/cmserr.c",
291    "lcms/src/cmsgamma.c",
292    "lcms/src/cmsgmt.c",
293    "lcms/src/cmshalf.c",
294    "lcms/src/cmsintrp.c",
295    "lcms/src/cmsio0.c",
296    "lcms/src/cmsio1.c",
297    "lcms/src/cmslut.c",
298    "lcms/src/cmsmd5.c",
299    "lcms/src/cmsmtrx.c",
300    "lcms/src/cmsnamed.c",
301    "lcms/src/cmsopt.c",
302    "lcms/src/cmspack.c",
303    "lcms/src/cmspcs.c",
304    "lcms/src/cmsplugin.c",
305    "lcms/src/cmsps2.c",
306    "lcms/src/cmssamp.c",
307    "lcms/src/cmssm.c",
308    "lcms/src/cmstypes.c",
309    "lcms/src/cmsvirt.c",
310    "lcms/src/cmswtpnt.c",
311    "lcms/src/cmsxform.c",
312  ]
313  deps = [ "../core/fxcrt" ]
314}
315
316if (!build_with_chromium) {
317  declare_args() {
318    # Uses system libjpeg. If true, overrides use_libjpeg_turbo.
319    use_system_libjpeg = false
320
321    # Uses libjpeg_turbo as the jpeg implementation. Has no effect if
322    # use_system_libjpeg is set.
323    use_libjpeg_turbo = true
324  }
325
326  config("system_libjpeg_config") {
327    libs = [ "jpeg" ]
328    defines = [ "USE_SYSTEM_LIBJPEG" ]
329  }
330
331  config("libjpeg_turbo_config") {
332    defines = [ "USE_LIBJPEG_TURBO=1" ]
333  }
334
335  # This is a meta target that forwards to the system's libjpeg,
336  # third_party/libjpeg, or third_party/libjpeg_turbo depending on the build args
337  # declared in this file.
338  group("jpeg") {
339    if (use_system_libjpeg) {
340      public_configs = [ ":system_libjpeg_config" ]
341    } else if (use_libjpeg_turbo) {
342      public_deps = [ "//third_party/libjpeg_turbo:libjpeg" ]
343      public_configs = [ ":libjpeg_turbo_config" ]
344    } else {
345      public_deps = [ "//third_party/libjpeg:libjpeg" ]
346    }
347  }
348}
349
350config("system_zlib_config") {
351  libs = [ "z" ]
352  defines = [ "USE_SYSTEM_ZLIB" ]
353}
354
355group("zlib") {
356  if (use_system_zlib) {
357    public_configs = [ ":system_zlib_config" ]
358  } else {
359    public_deps = [ "//third_party/zlib" ]
360  }
361}
362
363if (use_system_lcms2) {
364  pkg_config("lcms2_from_pkgconfig") {
365    defines = [ "USE_SYSTEM_LCMS2" ]
366    packages = [ "lcms2" ]
367  }
368}
369group("lcms2") {
370  if (use_system_lcms2) {
371    public_configs = [ ":lcms2_from_pkgconfig" ]
372  } else {
373    public_deps = [ ":fx_lcms2" ]
374  }
375}
376
377if (use_system_libopenjpeg2) {
378  pkg_config("libopenjpeg2_from_pkgconfig") {
379    defines = [ "USE_SYSTEM_LIBOPENJPEG2" ]
380    packages = [ "libopenjp2" ]
381  }
382}
383group("libopenjpeg2") {
384  if (use_system_libopenjpeg2) {
385    public_configs = [ ":libopenjpeg2_from_pkgconfig" ]
386  } else {
387    public_deps = [ ":fx_libopenjpeg" ]
388  }
389}
390
391config("fx_libopenjpeg_warnings") {
392  visibility = [ ":*" ]
393  if (is_win) {
394    cflags = [
395      # Signed/unsigned comparisons.
396      "/wd4018",
397    ]
398  }
399}
400
401source_set("fx_libopenjpeg") {
402  configs -= [ "//build/config/compiler:chromium_code" ]
403  configs += [
404    "//build/config/compiler:no_chromium_code",
405    "//build/config/sanitizers:cfi_icall_generalize_pointers",
406    ":pdfium_third_party_config",
407
408    # Must be after no_chromium_code for warning flags to be ordered correctly.
409    ":fx_libopenjpeg_warnings",
410  ]
411  sources = [
412    "libopenjpeg20/bio.c",
413    "libopenjpeg20/cio.c",
414    "libopenjpeg20/dwt.c",
415    "libopenjpeg20/event.c",
416    "libopenjpeg20/function_list.c",
417    "libopenjpeg20/image.c",
418    "libopenjpeg20/invert.c",
419    "libopenjpeg20/j2k.c",
420    "libopenjpeg20/jp2.c",
421    "libopenjpeg20/mct.c",
422    "libopenjpeg20/mqc.c",
423    "libopenjpeg20/openjpeg.c",
424    "libopenjpeg20/opj_clock.c",
425    "libopenjpeg20/pi.c",
426    "libopenjpeg20/sparse_array.c",
427    "libopenjpeg20/sparse_array.h",
428    "libopenjpeg20/t1.c",
429    "libopenjpeg20/t2.c",
430    "libopenjpeg20/tcd.c",
431    "libopenjpeg20/tgt.c",
432    "libopenjpeg20/thread.c",
433  ]
434}
435
436config("system_libpng_config") {
437  libs = [ "png" ]
438  defines = [ "USE_SYSTEM_LIBPNG" ]
439}
440
441group("png") {
442  if (use_system_libpng) {
443    public_configs = [ ":system_libpng_config" ]
444  } else {
445    public_deps = [ ":fx_lpng" ]
446  }
447}
448
449source_set("fx_lpng") {
450  configs -= [ "//build/config/compiler:chromium_code" ]
451  configs += [
452    "//build/config/compiler:no_chromium_code",
453    ":pdfium_third_party_config",
454  ]
455  sources = [
456    "libpng16/png.c",
457    "libpng16/png.h",
458    "libpng16/pngconf.h",
459    "libpng16/pngdebug.h",
460    "libpng16/pngerror.c",
461    "libpng16/pngget.c",
462    "libpng16/pnginfo.h",
463    "libpng16/pnglibconf.h",
464    "libpng16/pngmem.c",
465    "libpng16/pngpread.c",
466    "libpng16/pngprefix.h",
467    "libpng16/pngpriv.h",
468    "libpng16/pngread.c",
469    "libpng16/pngrio.c",
470    "libpng16/pngrtran.c",
471    "libpng16/pngrutil.c",
472    "libpng16/pngset.c",
473    "libpng16/pngstruct.h",
474    "libpng16/pngtrans.c",
475    "libpng16/pngwio.c",
476    "libpng16/pngwrite.c",
477    "libpng16/pngwtran.c",
478    "libpng16/pngwutil.c",
479  ]
480
481  defines = []
482  cflags = []
483  deps = [ ":zlib" ]
484
485  if (current_cpu == "x86" || current_cpu == "x64") {
486    sources += [
487      "libpng16/intel/filter_sse2_intrinsics.c",
488      "libpng16/intel/intel_init.c",
489    ]
490    defines += [ "PNG_INTEL_SSE_OPT=1" ]
491  } else if ((current_cpu == "arm" || current_cpu == "arm64") && arm_use_neon) {
492    sources += [
493      "libpng16/arm/arm_init.c",
494      "libpng16/arm/filter_neon_intrinsics.c",
495      "libpng16/arm/palette_neon_intrinsics.c",
496    ]
497    defines += [
498      "PNG_ARM_NEON_OPT=2",
499      "PNG_ARM_NEON_IMPLEMENTATION=1",
500    ]
501  }
502
503  if (is_win) {
504    # Unary minus applied to unsigned type.
505    cflags += [ "/wd4146" ]
506  }
507}
508
509if (pdf_enable_xfa_tiff) {
510  source_set("fx_tiff") {
511    configs -= [ "//build/config/compiler:chromium_code" ]
512    configs += [
513      "//build/config/compiler:no_chromium_code",
514      ":pdfium_third_party_config",
515    ]
516    if (is_win) {
517      # Need to undefine the macro since it is redefined in
518      # tif_ojpeg.c and tif_jpeg.c.
519      configs -= [ "//build/config/win:lean_and_mean" ]
520    }
521    deps = [
522      ":zlib",
523      "../core/fxcrt",
524      "//third_party:jpeg",
525    ]
526    sources = [
527      "libtiff/tif_aux.c",
528      "libtiff/tif_close.c",
529      "libtiff/tif_codec.c",
530      "libtiff/tif_color.c",
531      "libtiff/tif_compress.c",
532      "libtiff/tif_dir.c",
533      "libtiff/tif_dirinfo.c",
534      "libtiff/tif_dirread.c",
535      "libtiff/tif_dirwrite.c",
536      "libtiff/tif_dumpmode.c",
537      "libtiff/tif_error.c",
538      "libtiff/tif_extension.c",
539      "libtiff/tif_fax3.c",
540      "libtiff/tif_fax3sm.c",
541      "libtiff/tif_flush.c",
542      "libtiff/tif_getimage.c",
543      "libtiff/tif_jpeg.c",
544      "libtiff/tif_luv.c",
545      "libtiff/tif_lzw.c",
546      "libtiff/tif_next.c",
547      "libtiff/tif_ojpeg.c",
548      "libtiff/tif_open.c",
549      "libtiff/tif_packbits.c",
550      "libtiff/tif_pixarlog.c",
551      "libtiff/tif_predict.c",
552      "libtiff/tif_print.c",
553      "libtiff/tif_read.c",
554      "libtiff/tif_strip.c",
555      "libtiff/tif_swab.c",
556      "libtiff/tif_thunder.c",
557      "libtiff/tif_tile.c",
558      "libtiff/tif_version.c",
559      "libtiff/tif_warning.c",
560      "libtiff/tif_write.c",
561      "libtiff/tif_zip.c",
562      "libtiff/tiffiop.h",
563      "libtiff/tiffvers.h",
564    ]
565  }
566}
567
568source_set("pdfium_base") {
569  configs -= [ "//build/config/compiler:chromium_code" ]
570  configs += [
571    "//build/config/compiler:no_chromium_code",
572    ":pdfium_third_party_config",
573  ]
574  sources = [
575    "base/allocator/partition_allocator/address_space_randomization.cc",
576    "base/allocator/partition_allocator/address_space_randomization.h",
577    "base/allocator/partition_allocator/oom.h",
578    "base/allocator/partition_allocator/oom_callback.cc",
579    "base/allocator/partition_allocator/oom_callback.h",
580    "base/allocator/partition_allocator/page_allocator.cc",
581    "base/allocator/partition_allocator/page_allocator.h",
582    "base/allocator/partition_allocator/page_allocator_constants.h",
583    "base/allocator/partition_allocator/page_allocator_internal.h",
584    "base/allocator/partition_allocator/page_allocator_internals_posix.h",
585    "base/allocator/partition_allocator/page_allocator_internals_win.h",
586    "base/allocator/partition_allocator/partition_alloc.cc",
587    "base/allocator/partition_allocator/partition_alloc.h",
588    "base/allocator/partition_allocator/partition_alloc_constants.h",
589    "base/allocator/partition_allocator/partition_bucket.cc",
590    "base/allocator/partition_allocator/partition_bucket.h",
591    "base/allocator/partition_allocator/partition_cookie.h",
592    "base/allocator/partition_allocator/partition_direct_map_extent.h",
593    "base/allocator/partition_allocator/partition_freelist_entry.h",
594    "base/allocator/partition_allocator/partition_oom.cc",
595    "base/allocator/partition_allocator/partition_oom.h",
596    "base/allocator/partition_allocator/partition_page.cc",
597    "base/allocator/partition_allocator/partition_page.h",
598    "base/allocator/partition_allocator/partition_root_base.cc",
599    "base/allocator/partition_allocator/partition_root_base.h",
600    "base/allocator/partition_allocator/random.cc",
601    "base/allocator/partition_allocator/random.h",
602    "base/allocator/partition_allocator/spin_lock.cc",
603    "base/allocator/partition_allocator/spin_lock.h",
604    "base/base_export.h",
605    "base/bits.h",
606    "base/compiler_specific.h",
607    "base/debug/alias.cc",
608    "base/debug/alias.h",
609    "base/logging.h",
610    "base/no_destructor.h",
611    "base/numerics/safe_conversions.h",
612    "base/numerics/safe_conversions_arm_impl.h",
613    "base/numerics/safe_conversions_impl.h",
614    "base/numerics/safe_math.h",
615    "base/numerics/safe_math_impl.h",
616    "base/optional.h",
617    "base/span.h",
618    "base/stl_util.h",
619    "base/sys_byteorder.h",
620    "base/template_util.h",
621  ]
622
623  if (is_win) {
624    sources += [
625      "base/win/win_util.cc",
626      "base/win/win_util.h",
627    ]
628  }
629}
630
631source_set("pdfium_base_test_support") {
632  testonly = true
633  configs -= [ "//build/config/compiler:chromium_code" ]
634  configs += [
635    "//build/config/compiler:no_chromium_code",
636    ":pdfium_third_party_config",
637  ]
638  sources = []
639  deps = []
640
641  if (is_posix || is_fuchsia) {
642    sources += [
643      "base/test/scoped_locale.cc",
644      "base/test/scoped_locale.h",
645    ]
646    deps += [ "//testing/gtest" ]
647  }
648}
649
650source_set("skia_shared") {
651  configs -= [ "//build/config/compiler:chromium_code" ]
652  configs += [
653    "//build/config/compiler:no_chromium_code",
654    ":pdfium_third_party_config",
655  ]
656  sources = [
657    "skia_shared/SkFloatToDecimal.cpp",
658    "skia_shared/SkFloatToDecimal.h",
659  ]
660}
661