| OLD | NEW |
| 1 # PDFium | 1 # PDFium |
| 2 | 2 |
| 3 ## News | 3 ## News |
| 4 | 4 |
| 5 As of 2016-02-04, the XFA branch is deprecated. Instead, see the section on | 5 As of 2016-02-04, the XFA branch is deprecated. Instead, see the section on |
| 6 configuration below. | 6 configuration below. |
| 7 | 7 |
| 8 ## Prerequisites | 8 ## Prerequisites |
| 9 | 9 |
| 10 Get the chromium depot tools via the instructions at | 10 Get the chromium depot tools via the instructions at |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 | 31 |
| 32 We use the GYP library to generate the build files. | 32 We use the GYP library to generate the build files. |
| 33 | 33 |
| 34 At this point, you have two options. The first option is to use the [Ninja] | 34 At this point, you have two options. The first option is to use the [Ninja] |
| 35 (http://martine.github.io/ninja/) build system (also included with the | 35 (http://martine.github.io/ninja/) build system (also included with the |
| 36 depot\_tools checkout). This is the default as of mid-September, 2015. | 36 depot\_tools checkout). This is the default as of mid-September, 2015. |
| 37 Previously, the second option (platform-specific build files) was the default. | 37 Previously, the second option (platform-specific build files) was the default. |
| 38 Most PDFium developers use Ninja, as does our [continuous build system] | 38 Most PDFium developers use Ninja, as does our [continuous build system] |
| 39 (http://build.chromium.org/p/client.pdfium/). | 39 (http://build.chromium.org/p/client.pdfium/). |
| 40 | 40 |
| 41 * On Windows: `build\gyp_pdfium` | 41 * On Windows: `build_gyp\gyp_pdfium` |
| 42 * For all other platforms: `build/gyp_pdfium` | 42 * For all other platforms: `build_gyp/gyp_pdfium` |
| 43 | 43 |
| 44 The second option is to generate platform-specific build files, i.e. Makefiles | 44 The second option is to generate platform-specific build files, i.e. Makefiles |
| 45 on Linux, sln files on Windows, and xcodeproj files on Mac. To do so, set the | 45 on Linux, sln files on Windows, and xcodeproj files on Mac. To do so, set the |
| 46 GYP\_GENERATORS environment variable appropriately (e.g. "make", "msvs", or | 46 GYP\_GENERATORS environment variable appropriately (e.g. "make", "msvs", or |
| 47 "xcode") before running the above command. | 47 "xcode") before running the above command. |
| 48 | 48 |
| 49 ### Selecting build configuration | 49 ### Selecting build configuration |
| 50 | 50 |
| 51 PDFium may be built either with or without JavaScript support, and with | 51 PDFium may be built either with or without JavaScript support, and with |
| 52 or without XFA forms support. Both of these features are enabled by | 52 or without XFA forms support. Both of these features are enabled by |
| 53 default. Also note that the XFA feature requires JavaScript. | 53 default. Also note that the XFA feature requires JavaScript. |
| 54 | 54 |
| 55 To build without XFA, set `pdf_enable_xfa=0` before running `gyp_pdfium`. | 55 To build without XFA, set `pdf_enable_xfa=0` before running `gyp_pdfium`. |
| 56 To build without JavaScript, set `pdf_enable_v8=0 pdf_enable_xfa=0` before | 56 To build without JavaScript, set `pdf_enable_v8=0 pdf_enable_xfa=0` before |
| 57 running `gyp_pdfium`. For example | 57 running `gyp_pdfium`. For example |
| 58 ``` | 58 ``` |
| 59 GYP_DEFINES='pdf_enable_v8=0 pdf_enable_xfa=0' build/gyp_pdfium | 59 GYP_DEFINES='pdf_enable_v8=0 pdf_enable_xfa=0' build_gyp/gyp_pdfium |
| 60 ``` | 60 ``` |
| 61 gives the smallest possible build configuration. | 61 gives the smallest possible build configuration. |
| 62 | 62 |
| 63 ### Using goma (Googlers only) | 63 ### Using goma (Googlers only) |
| 64 | 64 |
| 65 If you would like to build using goma, pass `use_goma=1` to `gyp_pdfium`. If | 65 If you would like to build using goma, pass `use_goma=1` to `gyp_pdfium`. If |
| 66 you installed goma in a non-standard location, you will also need to set | 66 you installed goma in a non-standard location, you will also need to set |
| 67 `gomadir`. e.g. | 67 `gomadir`. e.g. |
| 68 | 68 |
| 69 ``` | 69 ``` |
| 70 build/gyp_pdfium -D use_goma=1 -D gomadir=path/to/goma | 70 build_gyp/gyp_pdfium -D use_goma=1 -D gomadir=path/to/goma |
| 71 ``` | 71 ``` |
| 72 | 72 |
| 73 ## Building the code | 73 ## Building the code |
| 74 | 74 |
| 75 If you used Ninja, you can build the sample program by: `ninja -C out/Debug | 75 If you used Ninja, you can build the sample program by: `ninja -C out/Debug |
| 76 pdfium_test` You can build the entire product (which includes a few unit | 76 pdfium_test` You can build the entire product (which includes a few unit |
| 77 tests) by: `ninja -C out/Debug`. | 77 tests) by: `ninja -C out/Debug`. |
| 78 | 78 |
| 79 If you're not using Ninja, then building is platform-specific. | 79 If you're not using Ninja, then building is platform-specific. |
| 80 | 80 |
| 81 * On Linux: `make pdfium_test` | 81 * On Linux: `make pdfium_test` |
| 82 * On Mac: `open build/all.xcodeproj` | 82 * On Mac: `open build_gyp/all.xcodeproj` |
| 83 * On Windows: open build\all.sln | 83 * On Windows: open build_gyp\all.sln |
| 84 | 84 |
| 85 ## Running the sample program | 85 ## Running the sample program |
| 86 | 86 |
| 87 The pdfium\_test program supports reading, parsing, and rasterizing the pages of | 87 The pdfium\_test program supports reading, parsing, and rasterizing the pages of |
| 88 a .pdf file to .ppm or .png output image files (windows supports two other | 88 a .pdf file to .ppm or .png output image files (windows supports two other |
| 89 formats). For example: `out/Debug/pdfium_test --ppm path/to/myfile.pdf`. Note | 89 formats). For example: `out/Debug/pdfium_test --ppm path/to/myfile.pdf`. Note |
| 90 that this will write output images to `path/to/myfile.pdf.<n>.ppm`. | 90 that this will write output images to `path/to/myfile.pdf.<n>.ppm`. |
| 91 | 91 |
| 92 ## Testing | 92 ## Testing |
| 93 | 93 |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 as much as possible. The main exceptions is: | 134 as much as possible. The main exceptions is: |
| 135 | 135 |
| 136 1. Code has to conform to the existing style and not Chromium/Google style. | 136 1. Code has to conform to the existing style and not Chromium/Google style. |
| 137 | 137 |
| 138 ## Branches | 138 ## Branches |
| 139 | 139 |
| 140 Prior to 2016-02-04, there existed an actively developed origin/xfa branch. | 140 Prior to 2016-02-04, there existed an actively developed origin/xfa branch. |
| 141 The origin/xfa branch is now an evolutionary dead-end. Everything you need | 141 The origin/xfa branch is now an evolutionary dead-end. Everything you need |
| 142 to build either with or without the XFA feature is on origin/master. | 142 to build either with or without the XFA feature is on origin/master. |
| 143 | 143 |
| OLD | NEW |