aboutsummaryrefslogtreecommitdiff
path: root/android-chromium/chromium-build.sh
blob: a607e5a24c40574f5e0a2dac2d0ee09465d5b911 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#!/bin/bash

set -ex

setup_depottools() {
  sudo apt-get update
  rm -rf depot_tools
  git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
  export PATH=${PWD}/depot_tools:${PATH}
}

setup_chromium() {
  rm -rf chromium
  mkdir chromium
  cd chromium
  test -d src || fetch --nohooks android
}

sync_source() {
  yes | gclient sync
}

install_deps() {
  sudo ./src/build/install-build-deps.sh --no-syms --no-chromeos-fonts --no-prompt
  sudo ./src/build/install-build-deps-android.sh --no-prompt
}

setup_buildenv() {
  rm -rf out
  case "${ARGS}" in
    gcc_arm)
      gn gen out/Default --args="target_os=\"android\" target_cpu=\"arm\" is_debug=true is_component_build=true is_clang=false symbol_level=1 enable_incremental_javac=true"
      ;;
    gcc_arm64)
      gn gen out/Default --args="target_os=\"android\" target_cpu=\"arm64\" is_debug=true is_component_build=true is_clang=false symbol_level=1 enable_incremental_javac=true"
      ;;
    clang_arm)
      gn gen out/Default --args="target_os=\"android\" target_cpu=\"arm\" is_debug=true is_component_build=true is_clang=true symbol_level=1 enable_incremental_javac=true"
      ;;
    clang_arm64)
      gn gen out/Default --args="target_os=\"android\" target_cpu=\"arm64\" is_debug=true is_component_build=true is_clang=true symbol_level=1 enable_incremental_javac=true"
      ;;
  esac
}

build_chromium() {
  . build/android/envsetup.sh
  ninja -C out/Default chrome_public_apk
}

apply_patches() {
  cd ..
  rm -rf chromium-patchsets
  git clone http://android-review.linaro.org/chromium-patchsets
  cd chromium-patchsets
  pw=${PWD}
  export patches=$(find . -iname "*.patch" | sort)
  for patch in ${patches}; do echo "applying $patch"; project=$(dirname "${patch}"); cd ../src/"${project}";rm -rf .git/rebase-apply; git am "${pw}"/"${patch}"; cd -; done
  cd ../src/
  rm -rf "${pw}"
}

main() {
  setup_depottools
  setup_chromium
  sync_source
  install_deps
  cd src
  git reset --hard
  git clean -fdx
  sync_source
  git reset --hard
  git rebase-update
  sync_source
  apply_patches
  setup_buildenv
  echo ${PWD}
  export PATH=${PATH}:${PWD}/third_party/android_tools/ndk/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/
  build_chromium
  commit=`git log -1 | grep commit | cut -d' ' -f2`
  cp /home/buildslave/srv/${JOB_NAME}/configs/android-chromium/manifest-template.xml out/Default/apks/pinned-manifest.xml
  sed -i "s/%%REVISION%%/${commit}/g" out/Default/apks/pinned-manifest.xml
}

main "$@"