summaryrefslogtreecommitdiff
path: root/pdfium.gni
AgeCommit message (Collapse)Author
2018-07-04Remove gn arg 'use_coverage'chromium/3482Ryan Harrison
This flag was used for enabling GCOV style coverage data generation. Our code coverage tools now use the native LLVM tools, so no longer depend on this flag. Having this flag is confusing and a source of developer error. Change-Id: I42cfce6fe9e5a7d0f0ac13abdb5fec90f61f1c13 Reviewed-on: https://pdfium-review.googlesource.com/37130 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2018-06-06Add ability to log click events reaching PDFiumRyan Harrison
Adds in logging statement to related API methods and a build flag to control enabling the feature. This is meant to be used in conjunction with Chromium. A developer can enable this flag, load a test PDF, and then click on elements to determine appropriate coordinates for an .evt file. BUG=pdfium:1057 Change-Id: I956c39f545297872a61affdb621a412b3c407ff5 Reviewed-on: https://pdfium-review.googlesource.com/34010 Reviewed-by: Tom Sepez <tsepez@chromium.org> Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2018-04-10Add an assert to make sure all code is included in static libRyan Harrison
When building a complete static lib using pdf_is_complete_lib, assert that is_component_build=false, so that 'component' targets will be statically linked into the final product, instead of being dynamically linked in. We cannot have a rule like if pdf_is_complete_lib then is_component_build=false, because the is_component_build arg is defined in a file we import and overwriting the value later doesn't do what one expects, since the value has already been used in the imported file set things like env vars and build flags. Thus we assert the value and have a message about needing to set is_component_build=false. BUG=pdfium:1062 Change-Id: I83c430ca374e70c01f18e4b15a1eeb68aafa4444 Reviewed-on: https://pdfium-review.googlesource.com/30030 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2017-12-19Fix some nits in build configs.Lei Zhang
Mostly to sort build rules. Change-Id: I2ee4d24089f9e51b0a61b1f30b424f5f7aab7d0a Reviewed-on: https://pdfium-review.googlesource.com/21730 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2017-11-29Allow building pdfium against the system version of libpng.Andrew Weintraub
Bug: Change-Id: I0c930ca30637f58af3b60ed8f1383bd9234a1723 Reviewed-on: https://pdfium-review.googlesource.com/19850 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2017-08-10Revert "Add a build target and a proper export header for shared library ↵Henrique Nakashima
builds." This reverts commit 00334675c18a0203f313cceb670c970a77280f49. Reason for revert: Breaking the deps roller - https://chromium-review.googlesource.com/c/609307 Original change's description: > Add a build target and a proper export header for shared library builds. > > This CL adds support for Chromium's component build feature to pdfium. > > The export header stub in fpdfview.h is expanded to match Chromium's > export mechanisms and patterns (fixes pdfium:825). > > A component/shared library build can be triggered by adding > > is_component_build = true > > as a gn argument. Please note that setting this will also affect some > of pdfiums dependencies like v8, which will be build as components > too. > > Additionally, this CL provides a "pdf_source_set" template which > dynamically enables the use of "source_set" when building a complete > static library or a shared library to reduce build time. > > When testing this it is recommended to only build the pdfium target as > most of pdfiums test rely on non-public functions which aren't exported > by the shared library. > > Bug: pdfium:825,pdfium:826 > Change-Id: Icedc538ec535e11d1e53c4d5fabc8c064b275752 > Reviewed-on: https://pdfium-review.googlesource.com/8970 > Reviewed-by: dsinclair <dsinclair@chromium.org> > Commit-Queue: dsinclair <dsinclair@chromium.org> TBR=thestig@chromium.org,tsepez@chromium.org,brucedawson@chromium.org,dsinclair@google.com,dsinclair@chromium.org,licorn@gmail.com Change-Id: Ib02af2298932481293f50d362ae87bfedf284821 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: pdfium:825, pdfium:826 Reviewed-on: https://pdfium-review.googlesource.com/10550 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2017-08-09Add a build target and a proper export header for shared library builds.Felix Kauselmann
This CL adds support for Chromium's component build feature to pdfium. The export header stub in fpdfview.h is expanded to match Chromium's export mechanisms and patterns (fixes pdfium:825). A component/shared library build can be triggered by adding is_component_build = true as a gn argument. Please note that setting this will also affect some of pdfiums dependencies like v8, which will be build as components too. Additionally, this CL provides a "pdf_source_set" template which dynamically enables the use of "source_set" when building a complete static library or a shared library to reduce build time. When testing this it is recommended to only build the pdfium target as most of pdfiums test rely on non-public functions which aren't exported by the shared library. Bug: pdfium:825,pdfium:826 Change-Id: Icedc538ec535e11d1e53c4d5fabc8c064b275752 Reviewed-on: https://pdfium-review.googlesource.com/8970 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-07-13Added Callgrind instrumentation delimiters to pdfium_test.Henrique Nakashima
Change-Id: I664497b5bab640e642bde3f80aaeb62467237407 Reviewed-on: https://pdfium-review.googlesource.com/7281 Reviewed-by: dsinclair <dsinclair@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2017-05-24core: allow building against system lcms2chromium/3111Miklos Vajna
In a way similar to the existing USE_SYSTEM_ZLIB. The default is of course still the bundled lcms2. Change-Id: I219b50854b3c7870b0f4d94574ba39f6cb26f556 Reviewed-on: https://pdfium-review.googlesource.com/5870 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2017-05-15Check correctness of PDF Skia argsNicolas Pena
Users get confused when they set both Skia args to true and their code does not compile. This CL adds a check for this when generating gn args. Bug: pdfium:722 Change-Id: I0fb6f6a3fa64b094b674c602f38c736ee7b7fd65 Reviewed-on: https://pdfium-review.googlesource.com/5510 Commit-Queue: Nicolás Peña <npm@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Cary Clark <caryclark@google.com> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-05-06core: allow building against system zlibMiklos Vajna
In a way similar to the existing USE_SYSTEM_LIBJPEG. The default is of course still the DEPS-based zlib checkout. Changes in v2: 1) Since Chromium doesn't have //third_party:zlib (AKA a "zlib" target in //third_party/BUILD.GN) all the targets that depended on //third_party:zlib now depend on third_party:zlib, which always points to PDFium's third_party/BUILD.GN. The targets that depended on //third_party:zlib in third_party/BUILD.GN just depend on :zlib instead. 2) Move the zlib bits out of !build_with_chromium block. Change-Id: Id73eb07591418ff2ae71b83b87c18af71b49a22a Reviewed-on: https://pdfium-review.googlesource.com/5030 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2017-04-01Use absolute paths for FreeType source code.Lei Zhang
After moving to a DEPS based FreeType checkout, integration with Chromium no longer works correctly when pdf_bundle_freetype is set to true, because relative paths would point to third_party/pdfium/third_party/freetype, and that no longer exists. BUG=pdfium:688 TBR=drott@chromium.org,dsinclair@chromium.org,npm@chromium.org Change-Id: I346072ddc1052d25be58ca1610f6d1c002fc03ef Reviewed-on: https://pdfium-review.googlesource.com/3556 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2017-03-30Allow configuration of external embedder FreeTypeDominik Röttsches
Add a public config to fxfreetype to make includes visible and provide a freetype_common group as a public dependency on fxcrt. freetype_common switches between fxfreetype and //build/config/freetype, which gives embedders the flexibility to configure the source of FreeType. BUG=chromium:700926 Change-Id: I73ae26979dcf69a419485def23c7a13dffa2a15d Reviewed-on: https://pdfium-review.googlesource.com/2971 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2017-03-29Default to using bundled FreeType on Linux.Lei Zhang
Add override option for embedders. BUG=pdfium:143 Change-Id: If8e97fddf46127ba387e4165a973b78a8a642028 Reviewed-on: https://pdfium-review.googlesource.com/3190 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Nicolás Peña <npm@chromium.org>
2017-03-28Allow adding complete_static_lib to builddan sinclair
The complete_static_lib will cause all of the various libraries generated during the build to get bundled into a single libpdfium.a. This makes linking a lot easier for external applications as they just -lpdfium instead of trying to get the correct link order. See https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/reference.md#complete_static_lib for more information. Note, this just does pdfium at the moment, the V8 and XFA libs will need to get changed in the future if they're needed. BUG=pdfium:451 Change-Id: Id1f2d999652e2f951bcd77591f2514641371324e Reviewed-on: https://pdfium-review.googlesource.com/3220 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-02-28Enable XFA codecs by defaultDan Sinclair
This Cl enables the XFA codecs by default in order to get the fuzzers working again. Change-Id: Icea6df42b1b7bcee22618bd436502c518e69041f Reviewed-on: https://pdfium-review.googlesource.com/2877 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-02-27Allow building XFA without additional codecs.Tom Sepez
This is something we'd like to try for initial XFA launches adding in codecs as justified by results in the wild. Adding statistics for the unsupported cases is a follow-up exercise once this builds correctly. We always build all the additional libraries, to allow fuzzers to link against them even if we are not shipping them. The linker will sort it out for the actual code. Rename some files to match the classes contained within. That the existing tests seem to pass with the codecs disabled warrants further investigation. Change-Id: Iad269db91289f12dc9f5dda8f48121d27a0c4367 Reviewed-on: https://pdfium-review.googlesource.com/2836 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2017-01-17Add optional coverage flags to buildDan Sinclair
This CL allows generating coverage information for the source files. By adding use_coverage=true to the GN build settings clang will generate .gcno files for each source file and executing the binary will generate a .gcda file for each source file. Those files can then be processed by llvm-cov to generate .gcov reports for each source file. i.e. (assuming use_coverage=true is set for out/coverage) * ninja -C out/coverage pdfium_unittests * cd out/coverage * find obj -name "*.o" -exec llvm-cov -af -stats {} > d.out \; There should now be .gcov files for each source file in the out/coverage directory. Note, llvm-gcov may have a different name or syntax on your machine. Change-Id: I7379579f5f20a5b8b2f3a3b409b868bba4b4d74d Reviewed-on: https://pdfium-review.googlesource.com/2216 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
2016-11-16Create a subset of skia support for paths onlycaryclark
This is a continuation of https://codereview.chromium.org/2346483006/ This removes the need for agg, without providing full Skia support. It doesn't work yet, but it does compile and run for simple PDFs. R=dsinclair@google.com Committed: https://pdfium.googlesource.com/pdfium/+/5d223298b26c9b2b6284cba9a51521d3873b6e58 Review-Url: https://codereview.chromium.org/2491693002
2016-11-15Revert of Create a subset of skia support for paths only (patchset #10 ↵dsinclair
id:180001 of https://codereview.chromium.org/2491693002/ ) Reason for revert: Breaking the chrome roll. https://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_compile_dbg_ng/builds/306015/steps/generate_build_files%20%28with%20patch%29/logs/stdio Original issue's description: > Create a subset of skia support for paths only > > This is a continuation of https://codereview.chromium.org/2346483006/ > > This removes the need for agg, without providing > full Skia support. > > It doesn't work yet, but it does compile and run > for simple PDFs. > > R=dsinclair@google.com > > Committed: https://pdfium.googlesource.com/pdfium/+/5d223298b26c9b2b6284cba9a51521d3873b6e58 TBR=dsinclair@google.com,caryclark@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2503883003
2016-11-15Create a subset of skia support for paths onlycaryclark
This is a continuation of https://codereview.chromium.org/2346483006/ This removes the need for agg, without providing full Skia support. It doesn't work yet, but it does compile and run for simple PDFs. R=dsinclair@google.com Review-Url: https://codereview.chromium.org/2491693002
2016-07-29Add build configuration for experimental Windows GDI code.chromium/2816chromium/2815chromium/2814thestig
BUG=409472 Review-Url: https://codereview.chromium.org/2193783002
2016-05-03Reland of Allow overriding GN build flagschromium/2724dsinclair
This reverts commit 038bf0b129e56212a6de0989dca1ae023bb17c5d. In order to enable XFA from GN builds we need to be able to override pdf_enable_xfa. To do this a build_overrides/pdfium.gni file needs to be created in Chrome. To use that, //pdfium.gni reads the override values and sets them into the defined arguments. We have to create a build_overrides/pdfium.gni file in PDFium that sets the default overrides for PDFium builds. BUG=chromium:62400 Review-Url: https://codereview.chromium.org/1936313002
2016-04-30Revert of Allow overriding GN build flags (patchset #2 id:20001 of ↵dsinclair
https://codereview.chromium.org/1923333002/ ) Reason for revert: Blocking the roll Original issue's description: > Allow overriding GN build flags > > In order to enable XFA from GN builds we need to be able to override > pdf_enable_xfa. To do this a build_overrides/pdfium.gni file needs to be created > in Chrome. To use that, we have to create a build_overrides/pdfium.gni file > in PDFium that just uses the default values. > > BUG=chromium:62400 > > Committed: https://pdfium.googlesource.com/pdfium/+/1ae572e7e35b52ce4897d1715c005a1b0f79526a TBR=thakis@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=chromium:62400 Review-Url: https://codereview.chromium.org/1941563002
2016-04-27Allow overriding GN build flagsdsinclair
In order to enable XFA from GN builds we need to be able to override pdf_enable_xfa. To do this a build_overrides/pdfium.gni file needs to be created in Chrome. To use that, we have to create a build_overrides/pdfium.gni file in PDFium that just uses the default values. BUG=chromium:62400 Review-Url: https://codereview.chromium.org/1923333002
2016-04-20Standalone GN build.dsinclair
This CL setups up a standalone GN build. You'll need to set gn args similar to: use_goma = true clang_use_chrome_plugins = false pdf_enable_xfa = true pdf_enable_v8 = true pdf_is_standalone = true The third_party/pymock files are needed to make git cl upload work correctly. BUG=pdfium:106 Review URL: https://codereview.chromium.org/1904563002
2016-03-08Revert "Force GN build onto XFA (at next roll)."Tom Sepez
This reverts commit 051348757b75bd527d9a8bfffeaf5231b7c24449. Reason for revert: equivalent .gyp CL failed. TBR=ochang@chromium.org Review URL: https://codereview.chromium.org/1775983002 .
2016-03-07Force GN build onto XFA (at next roll).Tom Sepez
R=ochang@chromium.org Review URL: https://codereview.chromium.org/1763913002 .
2015-12-08Move default value of pdf_enable_xfa to standalone.gypiTom Sepez
This allows standalone pdfium builds to build with XFA, but makes a chromium checkout revert to non-xfa even on this branch. GN implies a chromium checkout at the moment, so disable XFA there, too. R=thestig@chromium.org Review URL: https://codereview.chromium.org/1508003003 .
2015-10-22XFA: Sync build and documentation differences with master.Dan Sinclair
This Cl syncs the AUTHORS, and README.md and build scripts in XFA to match master where possible. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1415423002 .
2015-10-13Merge to XFA: Allow compiling PDFium without V8.Tom Sepez
Original Review URL: https://codereview.chromium.org/1395733006 . (cherry picked from commit f1c713663192368d26031a4caed1f9705f4510af) Conflicts: BUILD.gn fpdfsdk/src/fpdfview.cpp fpdfsdk/src/javascript/JS_Runtime.cpp pdfium.gyp samples/BUILD.gn samples/samples.gyp BUG=pdfium:211 R=thestig@chromium.org Review URL: https://codereview.chromium.org/1393833006 .
2015-10-12Allow building of XFA branch without XFATom Sepez
R=thestig@chromium.org Review URL: https://codereview.chromium.org/1399833002 .