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. |
- |