Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Delta Between Two Patch Sets: README.md

Issue 29527808: Noissue - Use meson to build the C++ code (Closed) Base URL: https://hg.adblockplus.org/adblockpluscore/
Left Patch Set: Now build objects one by one, with dependencies, and share them. Created Oct. 12, 2017, 6:11 p.m.
Right Patch Set: Removed compile. meson > 0.40.0 Created Dec. 15, 2017, 5:37 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « .hgignore ('k') | compile » ('j') | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
1 Adblock Plus core 1 Adblock Plus core
2 ================= 2 =================
3 3
4 This repository contains the generic Adblock Plus code that's shared between 4 This repository contains the generic Adblock Plus code that's shared between
5 platforms. This repository is not designed to be used directly, but instead to 5 platforms. This repository is not designed to be used directly, but instead to
6 serve as a dependency for `adblockplus`, `adblockpluschrome` and 6 serve as a dependency for `adblockplus`, `adblockpluschrome` and
7 `libadblockplus`. 7 `libadblockplus`.
8 8
9 Compiling C++ code 9 Compiling C++ code
10 ------------------ 10 ------------------
11 11
12 ### Purpose 12 ### Purpose
13 13
14 In order to improve performance and memory usage, some of the code (located 14 In order to improve performance and memory usage, some of the code (located
15 inside the `compiled` directory) is written in C++ and compiled to JavaScript 15 inside the `compiled` directory) is written in C++ and compiled to JavaScript
16 via Empscripten. 16 via Empscripten.
17 17
18 ### Requirements 18 ### Requirements
19 19
20 * [Emscripten 1.37.3](https://github.com/kripken/emscripten) 20 * [Emscripten 1.37.3](https://github.com/kripken/emscripten)
21 * [Python 2.7](https://www.python.org) 21 * [Python 2.7](https://www.python.org)
22 * [meson](https://www.mesonbuild.com) 22 * [meson 0.40.0+](https://www.mesonbuild.com)
23 * [ninja](https://www.ninja-build.org) 23 * [ninja](https://www.ninja-build.org)
24
25 Make sure that meson and ninja are in your PATH.
24 26
25 ### Running Emscripten 27 ### Running Emscripten
26 28
27 After installing and configuring Emscripten you can setup the build 29 After installing and configuring Emscripten you can setup the build
28 with the following commands: 30 with the following commands:
29 31
30 meson build 32 meson build
31 33
32 By default it will make a debug build. Pass `--buildtype release` to 34 By default it will create a debug build. Pass `--buildtype release` to
33 make a release build. 35 create a release build.
Wladimir Palant 2017/10/13 09:45:39 Nit: make => create on both occasions? Seems to so
hub 2017/10/13 18:16:52 Done.
34 36
35 Then to build just do: 37 Then to build just do:
36 38
37 cd build 39 ninja -C build
38 ninja
39 40
40 This will regenerate the build files as needed. 41 This will regenerate the build files as needed.
41 42
42 This will produce a `lib/compiled.js` exporting the classes defined in C++ code. 43 This will produce a `lib/compiled.js` exporting the classes defined in C++ code.
43 44
44 ### Technical details 45 ### Technical details
45 46
46 Compilation is currently a two-step process. In the bindings generation step, 47 Compilation is currently a two-step process. In the bindings generation step,
47 the source files are compiled into `compiled/bindings.cpp.js` with the 48 the source files are compiled into `compiled/bindings.cpp.js` with the
48 `PRINT_BINDINGS` symbol defined. This application is then executed via Node.js 49 `PRINT_BINDINGS` symbol defined. This application is then executed via Node.js
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 Linting 99 Linting
99 ------- 100 -------
100 101
101 You can lint the code using [ESLint](http://eslint.org). 102 You can lint the code using [ESLint](http://eslint.org).
102 103
103 eslint *.js chrome lib test 104 eslint *.js chrome lib test
104 105
105 You will need to set up ESLint and our configuration first, see 106 You will need to set up ESLint and our configuration first, see
106 [eslint-config-eyeo](https://hg.adblockplus.org/codingtools/file/tip/eslint-conf ig-eyeo) 107 [eslint-config-eyeo](https://hg.adblockplus.org/codingtools/file/tip/eslint-conf ig-eyeo)
107 for more information. 108 for more information.
LEFTRIGHT

Powered by Google App Engine
This is Rietveld