Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 # Android Build Instructions | |
| 2 | |
| 3 [TOC] | |
| 4 | |
| 5 ## Prerequisites | |
| 6 | |
| 7 A Linux build machine capable of building [Chrome for | |
| 8 Linux](https://chromium.googlesource.com/chromium/src/+/master/docs/linux_build_ instructions_prerequisites.md). | |
| 9 Other (Mac/Windows) platforms are not supported for Android. | |
| 10 | |
| 11 ## Getting the code | |
| 12 | |
| 13 First, check out and install the [depot\_tools | |
| 14 package](https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_t ools/docs/html/depot_tools_tutorial.html#_setting_up). | |
| 15 | |
| 16 Then, if you have no existing checkout, create your source directory and | |
| 17 get the code: | |
| 18 | |
| 19 ```shell | |
| 20 mkdir ~/chromium && cd ~/chromium | |
| 21 fetch --nohooks android # This will take 30 minutes on a fast connection | |
| 22 ``` | |
| 23 | |
| 24 If you have an existing Linux checkout, you can add Android support by | |
| 25 appending `target_os = ['android']` to your .gclient file (in the | |
| 26 directory above src):\ | |
|
newt (away)
2016/04/05 16:54:19
trailing \
tfarina
2016/04/05 17:21:27
Done.
| |
| 27 | |
| 28 ```shell | |
| 29 cat > .gclient <<EOF | |
| 30 solutions = [ ...existing stuff in here... ] | |
| 31 target_os = [ 'android' ] # Add this to get Android stuff checked out. | |
| 32 EOF | |
| 33 ``` | |
| 34 | |
| 35 Then run gclient sync to get the Android stuff checked out: | |
| 36 | |
| 37 ```shell | |
| 38 gclient sync | |
| 39 ``` | |
| 40 | |
| 41 ## (Optional) Check out LKGR | |
| 42 | |
| 43 If you want a single build of Chromium in a known good state, sync to | |
| 44 the LKGR ("last known good revision"). You can find it | |
| 45 [here](http://chromium-status.appspot.com/lkgr), and the last 100 | |
| 46 [here](http://chromium-status.appspot.com/revisions). Run: | |
| 47 | |
| 48 ```shell | |
| 49 gclient sync --nohooks -r <lkgr-sha1> | |
| 50 ``` | |
| 51 | |
| 52 This is not needed for a typical developer workflow; only for one-time | |
| 53 builds of Chromium. | |
| 54 | |
| 55 ## Configure your build | |
| 56 | |
| 57 Android builds can be run with GN or GYP, though GN incremental builds | |
| 58 are the fastest option and GN will soon be the only supported option. | |
| 59 They are both meta-build systems that generate nina files for the | |
| 60 Android build. Both builds are regularly tested on the build waterfall. | |
| 61 | |
| 62 ### Configure GYP (deprecated -- use GN instead) | |
| 63 | |
| 64 If you are using GYP, next to the .gclient file, create a a file called | |
| 65 'chromium.gyp_env' with the following contents: | |
| 66 | |
| 67 ```shell | |
| 68 echo "{ 'GYP_DEFINES': 'OS=android target_arch=arm', }" > chromium.gyp_env | |
| 69 ``` | |
| 70 | |
| 71 Note that "arm" is the default architecture and can be omitted. If | |
| 72 building for x86 or MIPS devices, change `target_arch` to "ia32" or | |
| 73 "mipsel". | |
| 74 | |
| 75 **NOTE:** If you are using the `GYP_DEFINES` environment variable, it | |
| 76 will override any settings in this file. Either clear it or set it to | |
| 77 the values above before running `gclient runhooks`. | |
| OLD | NEW |