Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(294)

Unified Diff: README.md

Issue 1950103002: Update README to use GN instead of GYP (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: README.md
diff --git a/README.md b/README.md
index 28f6b2a5649d042dd69ae982223eb78486edf3fc..fb1498f64dc421d9da2a755c0297f33f3f4b2c0d 100644
--- a/README.md
+++ b/README.md
@@ -2,8 +2,9 @@
## News
-As of 2016-02-04, the XFA branch is deprecated. Instead, see
-[the section on configuration](#BuildConfig) below.
+As of 2016-05-04, GN is used to generate build files replacing GYP. GYP
+support will remain until it is disabled in Chromium and then will be removed
+from PDFium.
As of 2016-04-28, the Visual Studio toolchain from depot_tools is used as the
default Windows toolchain for Googlers. Please set DEPOT_TOOLS_WIN_TOOLCHAIN=0
@@ -19,6 +20,7 @@ the gclient utilty needed below).
Also install Python, Subversion, and Git and make sure they're in your path.
+
###<a name="WinDev"></a> Windows development
PDFium uses a similar Windows toolchain as Chromium:
@@ -31,6 +33,7 @@ environment.
Compilation is done through ninja, **not** Visual Studio.
+
#### Google employees
Run: `download_from_google_storage --config` and follow the
@@ -63,22 +66,17 @@ cd pdfium
##<a name="GenBuild"></a> Generate the build files
-We use the GYP library to generate the build files.
-
-At this point, you have two options. The first option is to use the [Ninja]
-(http://martine.github.io/ninja/) build system (also included with the
-depot\_tools checkout). This is the default as of mid-September, 2015.
-Previously, the second option (platform-specific build files) was the default.
-Most PDFium developers use Ninja, as does our [continuous build system]
-(http://build.chromium.org/p/client.pdfium/).
+We use GN to generate the build files and
+[Ninja](http://martine.github.io/ninja/) (also included with the depot\_tools
+checkout) to execute the build files.
- * On Windows: `build_gyp\gyp_pdfium`
- * For all other platforms: `build_gyp/gyp_pdfium`
+```
+gn gen <directory>
+```
-The second option is to generate platform-specific build files, i.e. Makefiles
-on Linux, sln files on Windows, and xcodeproj files on Mac. To do so, set the
-GYP\_GENERATORS environment variable appropriately (e.g. "make", "msvs", or
-"xcode") before running the above command.
+If you want to set <directory> to `out/Debug` or `out/Release` you'll need to
+export `GYP_PDFIUM_NO_ACTION=1` to stop `gclient sync` from executing GYP
+and overwritting your build files.
###<a name="BuildConfig"></a> Selecting build configuration
@@ -86,41 +84,36 @@ PDFium may be built either with or without JavaScript support, and with
or without XFA forms support. Both of these features are enabled by
default. Also note that the XFA feature requires JavaScript.
-To build without XFA, set `pdf_enable_xfa=0` before running `gyp_pdfium`.
-To build without JavaScript, set `pdf_enable_v8=0 pdf_enable_xfa=0` before
-running `gyp_pdfium`. For example
-```
-GYP_DEFINES='pdf_enable_v8=0 pdf_enable_xfa=0' build_gyp/gyp_pdfium
+Configuration is done by executing `gn args <directory>` to configure the build.
+This will lauch an editor in which you can set the following arguments.
+
```
-gives the smallest possible build configuration.
+use_goma = true # Googlers only.
+is_debug = true # Enable debugging features.
-### Using goma (Googlers only)
+pdf_use_skia = false # Set true to enable experimental skia backend.
-If you would like to build using goma, pass `use_goma=1` to `gyp_pdfium`. If
-you installed goma in a non-standard location, you will also need to set
-`gomadir`. e.g.
+pdf_enable_xfa = true # Set false to remove XFA support (implies JS support).
+pdf_enable_v8 = true # Set false to remove Javascript support.
+pdf_is_standalone = true # Set for a non-embedded build.
-```
-build_gyp/gyp_pdfium -D use_goma=1 -D gomadir=path/to/goma
+clang_use_chrome_plugins = false # Currently must be false.
```
-## Building the code
+When complete the arguments will be stored in `<directory>/args.gn`.
-If you used Ninja, you can build the sample program by: `ninja -C out/Debug
-pdfium_test` You can build the entire product (which includes a few unit
-tests) by: `ninja -C out/Debug`.
+## Building the code
-If you're not using Ninja, then building is platform-specific.
+If you used Ninja, you can build the sample program by:
+`ninja -C <directory>/pdfium_test` You can build the entire product (which
+includes a few unit tests) by: `ninja -C <directory>`.
- * On Linux: `make pdfium_test`
- * On Mac: `open build_gyp/all.xcodeproj`
- * On Windows: open build_gyp\all.sln
## Running the sample program
The pdfium\_test program supports reading, parsing, and rasterizing the pages of
a .pdf file to .ppm or .png output image files (windows supports two other
-formats). For example: `out/Debug/pdfium_test --ppm path/to/myfile.pdf`. Note
+formats). For example: `<directory>/pdfium_test --ppm path/to/myfile.pdf`. Note
that this will write output images to `path/to/myfile.pdf.<n>.ppm`.
## Testing
@@ -155,7 +148,7 @@ Note, the Reviews and Bugs lists are typically read-only.
## Bugs
- We will be using this
+ We use this
[bug tracker](https://code.google.com/p/pdfium/issues/list), but for security
bugs, please use [Chromium's security bug template]
(https://code.google.com/p/chromium/issues/entry?template=Security%20Bug)
@@ -169,9 +162,3 @@ as much as possible. The main exceptions is:
1. Code has to conform to the existing style and not Chromium/Google style.
-## Branches
-
-Prior to 2016-02-04, there existed an actively developed origin/xfa branch.
-The origin/xfa branch is now an evolutionary dead-end. Everything you need
-to build either with or without the XFA feature is on origin/master.
-
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698