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