aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar mtklein <mtklein@chromium.org>2016-07-29 05:07:39 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-07-29 05:07:39 -0700
commit9081ceb1236dfd1f3c7e9d5ef1d6f7c409d06aa1 (patch)
tree304728c29edfba15cb5bdbb3ee738ce16a2d6dda
parent4e41364b1ee4f71c0f8c01b3a05f9917b5e02d91 (diff)
GN: use ccache if available and the requested compiler.
-rw-r--r--infra/bots/recipe_modules/skia/fake_specs.py28
-rw-r--r--infra/bots/recipe_modules/skia/gn_flavor.py12
-rw-r--r--infra/bots/recipes/swarm_compile.expected/Build-Ubuntu-Clang-x86_64-Debug-GN.json237
-rw-r--r--infra/bots/recipes/swarm_compile.expected/Build-Ubuntu-GCC-x86_64-Debug-GN.json35
-rw-r--r--infra/bots/recipes/swarm_compile.expected/Build-Win-MSVC-x86-Release-GN.json2
-rw-r--r--infra/bots/recipes/swarm_compile.py4
6 files changed, 315 insertions, 3 deletions
diff --git a/infra/bots/recipe_modules/skia/fake_specs.py b/infra/bots/recipe_modules/skia/fake_specs.py
index f8c07437c9..7eb347334b 100644
--- a/infra/bots/recipe_modules/skia/fake_specs.py
+++ b/infra/bots/recipe_modules/skia/fake_specs.py
@@ -332,6 +332,34 @@ FAKE_SPECS = {
'upload_dm_results': True,
'upload_perf_results': False,
},
+ 'Build-Ubuntu-Clang-x86_64-Debug-GN': {
+ 'build_targets': [
+ 'most',
+ ],
+ 'builder_cfg': {
+ 'compiler': 'Clang',
+ 'configuration': 'Debug',
+ 'extra_config': 'GN',
+ 'is_trybot': False,
+ 'os': 'Ubuntu',
+ 'role': 'Build',
+ 'target_arch': 'x86_64',
+ },
+ 'configuration': 'Debug',
+ 'dm_flags': [
+ '--dummy-flags',
+ ],
+ 'do_perf_steps': False,
+ 'do_test_steps': False,
+ 'env': {
+ 'GYP_DEFINES': 'skia_arch_type=x86_64 skia_warnings_as_errors=1',
+ },
+ 'nanobench_flags': [
+ '--dummy-flags',
+ ],
+ 'upload_dm_results': True,
+ 'upload_perf_results': False,
+ },
'Build-Ubuntu-GCC-x86_64-Debug-GN': {
'build_targets': [
'most',
diff --git a/infra/bots/recipe_modules/skia/gn_flavor.py b/infra/bots/recipe_modules/skia/gn_flavor.py
index d7fa86c77f..cdb26e0631 100644
--- a/infra/bots/recipe_modules/skia/gn_flavor.py
+++ b/infra/bots/recipe_modules/skia/gn_flavor.py
@@ -18,6 +18,18 @@ class GNFlavorUtils(default_flavor.DefaultFlavorUtils):
is_debug = 'is_debug=false'
gn_args = [is_debug]
+ cc, cxx = 'cc', 'c++'
+ if 'Clang' in self._skia_api.builder_name:
+ cc, cxx = 'clang', 'clang++'
+ elif 'GCC' in self._skia_api.builder_name:
+ cc, cxx = 'gcc', 'g++'
+
+ ccache = self._skia_api.ccache()
+ if ccache:
+ cc, cxx = '"%s %s"' % (ccache, cc), '"%s %s"' % (ccache, cxx)
+
+ gn_args += [ 'cc=' + cc, 'cxx=' + cxx ]
+
# Run gn gen.
gn_exe = 'gn'
if self._skia_api.m.platform.is_win:
diff --git a/infra/bots/recipes/swarm_compile.expected/Build-Ubuntu-Clang-x86_64-Debug-GN.json b/infra/bots/recipes/swarm_compile.expected/Build-Ubuntu-Clang-x86_64-Debug-GN.json
new file mode 100644
index 0000000000..91ca8c05d7
--- /dev/null
+++ b/infra/bots/recipes/swarm_compile.expected/Build-Ubuntu-Clang-x86_64-Debug-GN.json
@@ -0,0 +1,237 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
+ "[CUSTOM_/_B_WORK]",
+ "511"
+ ],
+ "name": "makedirs checkout_path",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
+ "@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
+ "@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
+ "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_PACKAGE_REPO[depot_tools]/gclient.py",
+ "config",
+ "--spec",
+ "cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': 'DEPS', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]\ntarget_os = ['llvm']"
+ ],
+ "cwd": "[CUSTOM_/_B_WORK]",
+ "env": {
+ "CHROME_HEADLESS": "1",
+ "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
+ },
+ "name": "gclient setup"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_PACKAGE_REPO[depot_tools]/gclient.py",
+ "sync",
+ "--nohooks",
+ "--force",
+ "--verbose",
+ "--delete_unversioned_trees",
+ "--revision",
+ "skia@abc123",
+ "--output-json",
+ "/path/to/tmp/json"
+ ],
+ "cwd": "[CUSTOM_/_B_WORK]",
+ "env": {
+ "CHROME_HEADLESS": "1",
+ "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]:RECIPE_PACKAGE_REPO[depot_tools]"
+ },
+ "name": "gclient sync",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"solutions\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"skia/\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"revision\": 164710@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@SET_BUILD_PROPERTY@got_revision@164710@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CUSTOM_/_B_WORK]/skia/tools/buildbot_spec.py",
+ "/path/to/tmp/json",
+ "Build-Ubuntu-Clang-x86_64-Debug-GN"
+ ],
+ "cwd": "[CUSTOM_/_B_WORK]/skia",
+ "name": "exec buildbot_spec.py",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"build_targets\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"most\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ ], @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"builder_cfg\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"compiler\": \"Clang\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"configuration\": \"Debug\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"extra_config\": \"GN\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"is_trybot\": false, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"os\": \"Ubuntu\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"role\": \"Build\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"target_arch\": \"x86_64\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"configuration\": \"Debug\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"dm_flags\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"--dummy-flags\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ ], @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"do_perf_steps\": false, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"do_test_steps\": false, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"env\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"GYP_DEFINES\": \"skia_arch_type=x86_64 skia_warnings_as_errors=1\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"nanobench_flags\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"--dummy-flags\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ ], @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"upload_dm_results\": true, @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"upload_perf_results\": false@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CUSTOM_/_B_WORK]/skia/bin/fetch-gn"
+ ],
+ "cwd": "[CUSTOM_/_B_WORK]/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "GYP_DEFINES": "skia_arch_type=x86_64 skia_warnings_as_errors=1",
+ "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-x86_64-Debug-GN"
+ },
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import json\nimport subprocess\nimport sys\n\nccache = None\ntry:\n ccache = subprocess.check_output(['which', 'ccache']).rstrip()\nexcept:\n pass\nprint json.dumps({'ccache': ccache})\n"
+ ],
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "GYP_DEFINES": "skia_arch_type=x86_64 skia_warnings_as_errors=1",
+ "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-x86_64-Debug-GN"
+ },
+ "name": "has ccache?",
+ "stdout": "/path/to/tmp/json",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ccache\": \"/usr/bin/ccache\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@STEP_LOG_LINE@python.inline@import json@@@",
+ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@ccache = None@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ ccache = subprocess.check_output(['which', 'ccache']).rstrip()@@@",
+ "@@@STEP_LOG_LINE@python.inline@except:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ pass@@@",
+ "@@@STEP_LOG_LINE@python.inline@print json.dumps({'ccache': ccache})@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "gn",
+ "gen",
+ "[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-x86_64-Debug-GN/Debug",
+ "--args=is_debug=true cc=\"/usr/bin/ccache clang\" cxx=\"/usr/bin/ccache clang++\""
+ ],
+ "cwd": "[CUSTOM_/_B_WORK]/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "GYP_DEFINES": "skia_arch_type=x86_64 skia_warnings_as_errors=1",
+ "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-x86_64-Debug-GN"
+ },
+ "name": "gn_gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-C",
+ "[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-x86_64-Debug-GN/Debug"
+ ],
+ "cwd": "[CUSTOM_/_B_WORK]/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "GYP_DEFINES": "skia_arch_type=x86_64 skia_warnings_as_errors=1",
+ "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-x86_64-Debug-GN"
+ },
+ "name": "compile most"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'nanobench', 'nanobench.exe', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
+ "[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-x86_64-Debug-GN/Debug",
+ "[CUSTOM_[SWARM_OUT_DIR]]/out/Debug"
+ ],
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'nanobench', 'nanobench.exe', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipes/swarm_compile.expected/Build-Ubuntu-GCC-x86_64-Debug-GN.json b/infra/bots/recipes/swarm_compile.expected/Build-Ubuntu-GCC-x86_64-Debug-GN.json
index e6cb1a1d7d..f836737509 100644
--- a/infra/bots/recipes/swarm_compile.expected/Build-Ubuntu-GCC-x86_64-Debug-GN.json
+++ b/infra/bots/recipes/swarm_compile.expected/Build-Ubuntu-GCC-x86_64-Debug-GN.json
@@ -128,10 +128,43 @@
},
{
"cmd": [
+ "python",
+ "-u",
+ "import json\nimport subprocess\nimport sys\n\nccache = None\ntry:\n ccache = subprocess.check_output(['which', 'ccache']).rstrip()\nexcept:\n pass\nprint json.dumps({'ccache': ccache})\n"
+ ],
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "GYP_DEFINES": "skia_arch_type=x86_64 skia_warnings_as_errors=1",
+ "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Debug-GN"
+ },
+ "name": "has ccache?",
+ "stdout": "/path/to/tmp/json",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ccache\": \"/usr/bin/ccache\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@STEP_LOG_LINE@python.inline@import json@@@",
+ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@ccache = None@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ ccache = subprocess.check_output(['which', 'ccache']).rstrip()@@@",
+ "@@@STEP_LOG_LINE@python.inline@except:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ pass@@@",
+ "@@@STEP_LOG_LINE@python.inline@print json.dumps({'ccache': ccache})@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "cmd": [
"gn",
"gen",
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Debug-GN/Debug",
- "--args=is_debug=true"
+ "--args=is_debug=true cc=\"/usr/bin/ccache gcc\" cxx=\"/usr/bin/ccache g++\""
],
"cwd": "[CUSTOM_/_B_WORK]/skia",
"env": {
diff --git a/infra/bots/recipes/swarm_compile.expected/Build-Win-MSVC-x86-Release-GN.json b/infra/bots/recipes/swarm_compile.expected/Build-Win-MSVC-x86-Release-GN.json
index 6819581eb6..95fbeb6d2f 100644
--- a/infra/bots/recipes/swarm_compile.expected/Build-Win-MSVC-x86-Release-GN.json
+++ b/infra/bots/recipes/swarm_compile.expected/Build-Win-MSVC-x86-Release-GN.json
@@ -131,7 +131,7 @@
"gn.exe",
"gen",
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Release-GN\\Release",
- "--args=is_debug=false"
+ "--args=is_debug=false cc=cc cxx=c++"
],
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
"env": {
diff --git a/infra/bots/recipes/swarm_compile.py b/infra/bots/recipes/swarm_compile.py
index e33a0365bf..50bbcbe0fe 100644
--- a/infra/bots/recipes/swarm_compile.py
+++ b/infra/bots/recipes/swarm_compile.py
@@ -27,6 +27,7 @@ TEST_BUILDERS = {
'Build-Ubuntu-GCC-Arm7-Release-Android_Vulkan',
'Build-Ubuntu-GCC-x86-Debug',
'Build-Ubuntu-GCC-x86_64-Debug-MSAN',
+ 'Build-Ubuntu-Clang-x86_64-Debug-GN',
'Build-Ubuntu-GCC-x86_64-Debug-GN',
'Build-Ubuntu-GCC-x86_64-Release-CMake',
'Build-Ubuntu-GCC-x86_64-Release-PDFium',
@@ -70,10 +71,11 @@ def GenTests(api):
test += api.platform('mac', 64)
else:
test += api.platform('linux', 64)
- if 'Android' in builder:
+ if 'Android' in builder or ('GN' in builder and 'Win' not in builder):
ccache = '/usr/bin/ccache'
test += api.step_data('has ccache?',
stdout=api.json.output({'ccache':ccache}))
+ if 'Android' in builder:
test += api.step_data(
'which adb',
retcode=1)