OLD | NEW |
1 libadblockplus | 1 libadblockplus |
2 ============== | 2 ============== |
3 | 3 |
4 A C++ library offering the core functionality of Adblock Plus. | 4 A C++ library offering the core functionality of Adblock Plus. |
5 | 5 |
6 Getting/updating the dependencies | 6 Getting/updating the dependencies |
7 --------------------------------- | 7 --------------------------------- |
8 | 8 |
9 libadblockplus has dependencies that aren't part of this repository. They are | 9 libadblockplus has dependencies that aren't part of this repository. They are |
10 retrieved and updated during the build process, but you can also manually update | 10 retrieved and updated during the build process, but you can also manually update |
11 them by running the following: | 11 them by running the following: |
12 | 12 |
13 ./ensure_dependencies.py | 13 ./ensure_dependencies.py |
14 | 14 |
15 Building | 15 Building |
16 -------- | 16 -------- |
17 | 17 |
18 ### Supported target platforms and prerequisites | 18 ### Supported target platforms and prerequisites |
19 | 19 |
20 You need a C++11 compatible compiler to build libadblockplus. | 20 You need a C++11 compatible compiler to build libadblockplus. |
21 | 21 |
22 Win32: | 22 Win32: |
23 * Microsoft Visual Studio 2010, 2012 | 23 * At least v140 Visual C++ toolset (available in Microsoft Visual Studio 2015). |
24 | 24 |
25 Linux: | 25 Linux: |
26 * g++ 5.2 | 26 * g++ 5.2 |
27 | 27 |
28 Mac: | 28 Mac: |
29 * clang 3.6 for OS X | 29 * clang 3.6 for OS X/macOS (Xcode should be installed and its developer tools sh
ould be "selected"). |
30 | 30 |
31 Android: | 31 Android: |
32 * The host system should be Linux or OS X | 32 * The host system should be Linux or OS X |
33 * android-ndk-r9, android-ndk-r10c. You can download the latter for [OS X](http:
//dl.google.com/android/ndk/android-ndk-r10c-darwin-x86_64.bin), [Linux 32](http
://dl.google.com/android/ndk/android-ndk-r10c-linux-x86.bin), [Linux 64](http://
dl.google.com/android/ndk/android-ndk-r10c-linux-x86_64.bin). | 33 * android-ndk-r12b Here are the links for downloading |
| 34 [OS X](https://dl.google.com/android/repository/android-ndk-r12b-darwin-x86_64
.zip), |
| 35 [Linux 64](https://dl.google.com/android/repository/android-ndk-r12b-linux-x86
_64.zip). |
34 * g++ multilib | 36 * g++ multilib |
35 | 37 |
36 If you have a compilation issue with another compiler please [create an issue](h
ttps://issues.adblockplus.org/). | 38 If you have a compilation issue with another compiler please [create an issue](h
ttps://issues.adblockplus.org/). |
37 | 39 |
| 40 You also need Python 2.7 and ensure that `python.exe` is in your `PATH`. |
| 41 |
38 ### Unix | 42 ### Unix |
39 | 43 |
40 All you need is Python 2.7 and Make: | 44 Using Make: |
41 | 45 |
42 make | 46 make |
43 | 47 |
44 The default target architecture is x64. On a 32 bit system, run: | 48 The default target architecture is the architecture of a host. In order to build
for a different architecture pass `ARCH` to `make`, e.g. run: |
45 | 49 |
46 make ARCH=ia32 | 50 make ARCH=ia32 |
47 | 51 |
| 52 supported values are `ia32` and `x64`. |
| 53 |
| 54 |
48 To build and run the tests: | 55 To build and run the tests: |
49 | 56 |
50 make test | 57 make test |
51 | 58 |
52 Likewise, use the following on a 32 bit system: | 59 Likewise, use the following with `ARCH`: |
53 | 60 |
54 make test ARCH=ia32 | 61 make test ARCH=ia32 |
55 | 62 |
56 To run specific tests, you can specify a filter: | 63 To run specific tests, you can specify a filter: |
57 | 64 |
58 make test FILTER=*.Matches | 65 make test FILTER=*.Matches |
59 | 66 |
60 ### Windows | 67 ### Windows |
61 | 68 |
62 You need Microsoft Visual C++ (Express is sufficient) 2012 | |
63 and Python 2.7. Make sure that `python.exe` is on your `PATH`. | |
64 | |
65 * Execute `createsolution.bat` to generate project files, this will create | 69 * Execute `createsolution.bat` to generate project files, this will create |
66 `build\ia32\libadblockplus.sln` (solution for the 32 bit build) and | 70 `build\ia32\libadblockplus.sln` (solution for the 32 bit build) and |
67 `build\x64\libadblockplus.sln` (solution for the 64 bit build). Unfortunately, | 71 `build\x64\libadblockplus.sln` (solution for the 64 bit build). Unfortunately, |
68 V8 doesn't support creating both from the same project files. | 72 V8 doesn't support creating both from the same project files. |
69 * Open `build\ia32\libadblockplus.sln` or `build\x64\libadblockplus.sln` in | 73 * Open `build\ia32\libadblockplus.sln` or `build\x64\libadblockplus.sln` in |
70 Visual Studio and build the solution there. Alternatively you can use the | 74 Visual Studio and build the solution there. Alternatively you can use the |
71 `msbuild` command line tool, e.g. run `msbuild /m build\ia32\libadblockplus.sln` | 75 `msbuild` command line tool, e.g. run `msbuild /m build\ia32\libadblockplus.sln` |
72 from the Visual Studio Developer Command Prompt to create a 32 bit debug build. | 76 from the Visual Studio Developer Command Prompt to create a 32 bit debug build. |
73 | 77 |
| 78 Tested on Microsoft Visual Studio 2015 Community Edition. |
| 79 |
74 ### Building for Android | 80 ### Building for Android |
75 | 81 |
76 First set ANDROID_NDK_ROOT environment variable to your Android NDK directory. | 82 First set ANDROID_NDK_ROOT environment variable to your Android NDK directory. |
77 | 83 |
78 To build for *x86* arch run: | 84 To build for *x86* arch run: |
79 | 85 |
80 make android_x86 | 86 make android_x86 |
81 | 87 |
82 To build for *arm* arch run: | 88 To build for *arm* arch run: |
83 | 89 |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
236 | 242 |
237 ### Unix | 243 ### Unix |
238 | 244 |
239 The shell is automatically built by `make`, you can run it as follows: | 245 The shell is automatically built by `make`, you can run it as follows: |
240 | 246 |
241 build/out/abpshell | 247 build/out/abpshell |
242 | 248 |
243 ### Windows | 249 ### Windows |
244 | 250 |
245 Just run the project *abpshell*. | 251 Just run the project *abpshell*. |
OLD | NEW |