aboutsummaryrefslogtreecommitdiffhomepage
path: root/infra/bots/recipe_modules
diff options
context:
space:
mode:
authorGravatar Kevin Lubick <kjlubick@google.com>2017-11-02 09:34:08 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-11-02 13:36:21 +0000
commitb718fbb7f411819e47c973ed30bc4fe7cf9fac70 (patch)
tree63cfe8074cda830a9c675468158132266c2f6664 /infra/bots/recipe_modules
parentaf79192aa3cebaeaff039cebd4d17c1524755b91 (diff)
Add Pixelbook to tree
Bug: skia:7249 NOTRY=true Change-Id: I7ab6bc28d567ca5ae75df9c1e56b46c307032024 Reviewed-on: https://skia-review.googlesource.com/66143 Reviewed-by: Kevin Lubick <kjlubick@google.com> Commit-Queue: Kevin Lubick <kjlubick@google.com>
Diffstat (limited to 'infra/bots/recipe_modules')
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-arm-Release-Chromebook_GLES.json59
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES.json56
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Perf-ChromeOS-Clang-Chromebook_513C24_K01-GPU-MaliT860-arm-Release-All.json5
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.expected/Test-ChromeOS-Clang-Chromebook_513C24_K01-GPU-MaliT860-arm-Release-All.json5
-rw-r--r--infra/bots/recipe_modules/flavor/examples/full.py4
-rw-r--r--infra/bots/recipe_modules/flavor/gn_chromebook_flavor.py92
6 files changed, 174 insertions, 47 deletions
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-arm-Release-Chromebook_GLES.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-arm-Release-Chromebook_GLES.json
new file mode 100644
index 0000000000..5cd8e29716
--- /dev/null
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-arm-Release-Chromebook_GLES.json
@@ -0,0 +1,59 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CUSTOM_/_B_WORK]/skia/bin/fetch-gn"
+ ],
+ "cwd": "[CUSTOM_/_B_WORK]/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "LD_LIBRARY_PATH": "[START_DIR]/armhf_sysroot/lib",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Debian9-Clang-arm-Release-Chromebook_GLES"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[CUSTOM_/_B_WORK]/skia/bin/gn",
+ "gen",
+ "[CUSTOM_/_B_WORK]/skia/out/Build-Debian9-Clang-arm-Release-Chromebook_GLES/Release",
+ "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_asmflags=[\"--target=armv7a-linux-gnueabihf\", \"--sysroot=[START_DIR]/armhf_sysroot\", \"-march=armv7-a\", \"-mfpu=neon\", \"-mthumb\"] extra_cflags=[\"--target=armv7a-linux-gnueabihf\", \"--sysroot=[START_DIR]/armhf_sysroot\", \"-I[START_DIR]/chromebook_arm_gles/include\", \"-I[START_DIR]/armhf_sysroot/include\", \"-I[START_DIR]/armhf_sysroot/include/c++/4.8.4\", \"-I[START_DIR]/armhf_sysroot/include/c++/4.8.4/arm-linux-gnueabihf\", \"-DMESA_EGL_NO_X11_HEADERS\"] extra_ldflags=[\"--target=armv7a-linux-gnueabihf\", \"--sysroot=[START_DIR]/armhf_sysroot\", \"-B[START_DIR]/armhf_sysroot/bin\", \"-B[START_DIR]/armhf_sysroot/gcc-cross\", \"-L[START_DIR]/armhf_sysroot/gcc-cross\", \"-L[START_DIR]/armhf_sysroot/lib\", \"-L[START_DIR]/chromebook_arm_gles/lib\"] is_debug=false skia_use_egl=true skia_use_fontconfig=false skia_use_system_freetype2=false target_cpu=\"arm\""
+ ],
+ "cwd": "[CUSTOM_/_B_WORK]/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "LD_LIBRARY_PATH": "[START_DIR]/armhf_sysroot/lib",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Debian9-Clang-arm-Release-Chromebook_GLES"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-C",
+ "[CUSTOM_/_B_WORK]/skia/out/Build-Debian9-Clang-arm-Release-Chromebook_GLES/Release",
+ "nanobench",
+ "dm"
+ ],
+ "cwd": "[CUSTOM_/_B_WORK]/skia",
+ "env": {
+ "BUILDTYPE": "Release",
+ "CHROME_HEADLESS": "1",
+ "LD_LIBRARY_PATH": "[START_DIR]/armhf_sysroot/lib",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Debian9-Clang-arm-Release-Chromebook_GLES"
+ },
+ "name": "ninja"
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES.json
new file mode 100644
index 0000000000..1390914db2
--- /dev/null
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES.json
@@ -0,0 +1,56 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[CUSTOM_/_B_WORK]/skia/bin/fetch-gn"
+ ],
+ "cwd": "[CUSTOM_/_B_WORK]/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[CUSTOM_/_B_WORK]/skia/bin/gn",
+ "gen",
+ "[CUSTOM_/_B_WORK]/skia/out/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES/Debug",
+ "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_asmflags=[] extra_cflags=[\"-DMESA_EGL_NO_X11_HEADERS\", \"-DEGL_NO_IMAGE_EXTERNAL\", \"-I[START_DIR]/chromebook_x86_64_gles/include\"] extra_ldflags=[\"-L[START_DIR]/chromebook_x86_64_gles/lib\", \"-static-libstdc++\", \"-static-libgcc\", \"-fuse-ld=lld\"] skia_use_egl=true skia_use_fontconfig=false skia_use_system_freetype2=false target_cpu=\"x86_64\""
+ ],
+ "cwd": "[CUSTOM_/_B_WORK]/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-C",
+ "[CUSTOM_/_B_WORK]/skia/out/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES/Debug",
+ "nanobench",
+ "dm"
+ ],
+ "cwd": "[CUSTOM_/_B_WORK]/skia",
+ "env": {
+ "BUILDTYPE": "Debug",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
+ "SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES"
+ },
+ "name": "ninja"
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-ChromeOS-Clang-Chromebook_513C24_K01-GPU-MaliT860-arm-Release-All.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-ChromeOS-Clang-Chromebook_513C24_K01-GPU-MaliT860-arm-Release-All.json
index 3cdbcadec5..96c85c6d03 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-ChromeOS-Clang-Chromebook_513C24_K01-GPU-MaliT860-arm-Release-All.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-ChromeOS-Clang-Chromebook_513C24_K01-GPU-MaliT860-arm-Release-All.json
@@ -9,7 +9,6 @@
"env": {
"BUILDTYPE": "Release",
"CHROME_HEADLESS": "1",
- "LD_LIBRARY_PATH": "[START_DIR]/armhf_sysroot/lib",
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
"SKIA_OUT": "[START_DIR]/out"
},
@@ -21,13 +20,12 @@
"[START_DIR]/skia/bin/gn",
"gen",
"[START_DIR]/out/Release",
- "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_asmflags=[\"--target=armv7a-linux-gnueabihf\", \"--sysroot=[START_DIR]/armhf_sysroot\", \"-march=armv7-a\", \"-mfpu=neon\", \"-mthumb\"] extra_cflags=[\"--target=armv7a-linux-gnueabihf\", \"--sysroot=[START_DIR]/armhf_sysroot\", \"-I[START_DIR]/chromebook_arm_gles/include\", \"-I[START_DIR]/armhf_sysroot/include\", \"-I[START_DIR]/armhf_sysroot/include/c++/4.8.4\", \"-I[START_DIR]/armhf_sysroot/include/c++/4.8.4/arm-linux-gnueabihf\", \"-DMESA_EGL_NO_X11_HEADERS\"] extra_ldflags=[\"--target=armv7a-linux-gnueabihf\", \"--sysroot=[START_DIR]/armhf_sysroot\", \"-B[START_DIR]/armhf_sysroot/bin\", \"-B[START_DIR]/armhf_sysroot/gcc-cross\", \"-L[START_DIR]/armhf_sysroot/gcc-cross\", \"-L[START_DIR]/armhf_sysroot/lib\", \"-L[START_DIR]/chromebook_arm_gles/lib\"] is_debug=false skia_use_egl=true skia_use_fontconfig=false skia_use_system_freetype2=false target_cpu=\"None\""
+ "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_asmflags=[] extra_cflags=[\"-DMESA_EGL_NO_X11_HEADERS\", \"-DEGL_NO_IMAGE_EXTERNAL\", \"-I[START_DIR]/chromebook_x86_64_gles/include\"] extra_ldflags=[\"-L[START_DIR]/chromebook_x86_64_gles/lib\", \"-static-libstdc++\", \"-static-libgcc\", \"-fuse-ld=lld\"] is_debug=false skia_use_egl=true skia_use_fontconfig=false skia_use_system_freetype2=false target_cpu=\"None\""
],
"cwd": "[START_DIR]/skia",
"env": {
"BUILDTYPE": "Release",
"CHROME_HEADLESS": "1",
- "LD_LIBRARY_PATH": "[START_DIR]/armhf_sysroot/lib",
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
"SKIA_OUT": "[START_DIR]/out"
},
@@ -45,7 +43,6 @@
"env": {
"BUILDTYPE": "Release",
"CHROME_HEADLESS": "1",
- "LD_LIBRARY_PATH": "[START_DIR]/armhf_sysroot/lib",
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
"SKIA_OUT": "[START_DIR]/out"
},
diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-ChromeOS-Clang-Chromebook_513C24_K01-GPU-MaliT860-arm-Release-All.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-ChromeOS-Clang-Chromebook_513C24_K01-GPU-MaliT860-arm-Release-All.json
index d3b9e5d57c..9f977f7cf4 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-ChromeOS-Clang-Chromebook_513C24_K01-GPU-MaliT860-arm-Release-All.json
+++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-ChromeOS-Clang-Chromebook_513C24_K01-GPU-MaliT860-arm-Release-All.json
@@ -9,7 +9,6 @@
"env": {
"BUILDTYPE": "Release",
"CHROME_HEADLESS": "1",
- "LD_LIBRARY_PATH": "[START_DIR]/armhf_sysroot/lib",
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
"SKIA_OUT": "[START_DIR]/out"
},
@@ -21,13 +20,12 @@
"[START_DIR]/skia/bin/gn",
"gen",
"[START_DIR]/out/Release",
- "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_asmflags=[\"--target=armv7a-linux-gnueabihf\", \"--sysroot=[START_DIR]/armhf_sysroot\", \"-march=armv7-a\", \"-mfpu=neon\", \"-mthumb\"] extra_cflags=[\"--target=armv7a-linux-gnueabihf\", \"--sysroot=[START_DIR]/armhf_sysroot\", \"-I[START_DIR]/chromebook_arm_gles/include\", \"-I[START_DIR]/armhf_sysroot/include\", \"-I[START_DIR]/armhf_sysroot/include/c++/4.8.4\", \"-I[START_DIR]/armhf_sysroot/include/c++/4.8.4/arm-linux-gnueabihf\", \"-DMESA_EGL_NO_X11_HEADERS\"] extra_ldflags=[\"--target=armv7a-linux-gnueabihf\", \"--sysroot=[START_DIR]/armhf_sysroot\", \"-B[START_DIR]/armhf_sysroot/bin\", \"-B[START_DIR]/armhf_sysroot/gcc-cross\", \"-L[START_DIR]/armhf_sysroot/gcc-cross\", \"-L[START_DIR]/armhf_sysroot/lib\", \"-L[START_DIR]/chromebook_arm_gles/lib\"] is_debug=false skia_use_egl=true skia_use_fontconfig=false skia_use_system_freetype2=false target_cpu=\"None\""
+ "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_asmflags=[] extra_cflags=[\"-DMESA_EGL_NO_X11_HEADERS\", \"-DEGL_NO_IMAGE_EXTERNAL\", \"-I[START_DIR]/chromebook_x86_64_gles/include\"] extra_ldflags=[\"-L[START_DIR]/chromebook_x86_64_gles/lib\", \"-static-libstdc++\", \"-static-libgcc\", \"-fuse-ld=lld\"] is_debug=false skia_use_egl=true skia_use_fontconfig=false skia_use_system_freetype2=false target_cpu=\"None\""
],
"cwd": "[START_DIR]/skia",
"env": {
"BUILDTYPE": "Release",
"CHROME_HEADLESS": "1",
- "LD_LIBRARY_PATH": "[START_DIR]/armhf_sysroot/lib",
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
"SKIA_OUT": "[START_DIR]/out"
},
@@ -45,7 +43,6 @@
"env": {
"BUILDTYPE": "Release",
"CHROME_HEADLESS": "1",
- "LD_LIBRARY_PATH": "[START_DIR]/armhf_sysroot/lib",
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
"SKIA_OUT": "[START_DIR]/out"
},
diff --git a/infra/bots/recipe_modules/flavor/examples/full.py b/infra/bots/recipe_modules/flavor/examples/full.py
index 133c7f5b69..84d151fd39 100644
--- a/infra/bots/recipe_modules/flavor/examples/full.py
+++ b/infra/bots/recipe_modules/flavor/examples/full.py
@@ -58,6 +58,8 @@ def RunSteps(api):
TEST_BUILDERS = [
'Build-Debian9-Clang-arm-Release-Android_API26',
+ 'Build-Debian9-Clang-arm-Release-Chromebook_GLES',
+ 'Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES',
'Build-Debian9-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE',
'Build-Debian9-Clang-x86_64-Release-Fast',
'Build-Debian9-Clang-x86_64-Release-Mini',
@@ -111,7 +113,7 @@ def GenTests(api):
path_config='kitchen',
swarm_out_dir='[SWARM_OUT_DIR]')
)
- if 'Chromebook' in buildername:
+ if 'Chromebook' in buildername and not 'Build' in buildername:
test += api.step_data(
'read chromeos ip',
stdout=api.raw_io.output('{"user_ip":"foo@127.0.0.1"}'))
diff --git a/infra/bots/recipe_modules/flavor/gn_chromebook_flavor.py b/infra/bots/recipe_modules/flavor/gn_chromebook_flavor.py
index d91314d131..87f4fdccf2 100644
--- a/infra/bots/recipe_modules/flavor/gn_chromebook_flavor.py
+++ b/infra/bots/recipe_modules/flavor/gn_chromebook_flavor.py
@@ -75,43 +75,59 @@ class GNChromebookFlavorUtils(gn_flavor.GNFlavorUtils):
clang_linux = self.m.vars.slave_dir.join('clang_linux')
# This is a pretty typical arm-linux-gnueabihf sysroot
sysroot_dir = self.m.vars.slave_dir.join('armhf_sysroot')
- # This is the extra things needed to link against for the chromebook.
- # For example, the Mali GL drivers.
- gl_dir = self.m.vars.slave_dir.join('chromebook_arm_gles')
-
- extra_asmflags = [
- '--target=armv7a-linux-gnueabihf',
- '--sysroot=%s' % sysroot_dir,
- '-march=armv7-a',
- '-mfpu=neon',
- '-mthumb',
- ]
-
- extra_cflags = [
- '--target=armv7a-linux-gnueabihf',
- '--sysroot=%s' % sysroot_dir,
- '-I%s' % gl_dir.join('include'),
- '-I%s' % sysroot_dir.join('include'),
- '-I%s' % sysroot_dir.join('include', 'c++', '4.8.4'),
- '-I%s' % sysroot_dir.join('include', 'c++', '4.8.4',
- 'arm-linux-gnueabihf'),
- '-DMESA_EGL_NO_X11_HEADERS',
- ]
-
- extra_ldflags = [
- '--target=armv7a-linux-gnueabihf',
- '--sysroot=%s' % sysroot_dir,
- # use sysroot's ld which can properly link things.
- '-B%s' % sysroot_dir.join('bin'),
- # helps locate crt*.o
- '-B%s' % sysroot_dir.join('gcc-cross'),
- # helps locate libgcc*.so
- '-L%s' % sysroot_dir.join('gcc-cross'),
- '-L%s' % sysroot_dir.join('lib'),
- '-L%s' % gl_dir.join('lib'),
- # Explicitly do not use lld for cross compiling like this - I observed
- # failures like "Unrecognized reloc 41" and couldn't find out why.
- ]
+
+ if 'arm' == target_arch:
+ # This is the extra things needed to link against for the chromebook.
+ # For example, the Mali GL drivers.
+ gl_dir = self.m.vars.slave_dir.join('chromebook_arm_gles')
+ env = {'LD_LIBRARY_PATH': sysroot_dir.join('lib')}
+ extra_asmflags = [
+ '--target=armv7a-linux-gnueabihf',
+ '--sysroot=%s' % sysroot_dir,
+ '-march=armv7-a',
+ '-mfpu=neon',
+ '-mthumb',
+ ]
+
+ extra_cflags = [
+ '--target=armv7a-linux-gnueabihf',
+ '--sysroot=%s' % sysroot_dir,
+ '-I%s' % gl_dir.join('include'),
+ '-I%s' % sysroot_dir.join('include'),
+ '-I%s' % sysroot_dir.join('include', 'c++', '4.8.4'),
+ '-I%s' % sysroot_dir.join('include', 'c++', '4.8.4',
+ 'arm-linux-gnueabihf'),
+ '-DMESA_EGL_NO_X11_HEADERS',
+ ]
+
+ extra_ldflags = [
+ '--target=armv7a-linux-gnueabihf',
+ '--sysroot=%s' % sysroot_dir,
+ # use sysroot's ld which can properly link things.
+ '-B%s' % sysroot_dir.join('bin'),
+ # helps locate crt*.o
+ '-B%s' % sysroot_dir.join('gcc-cross'),
+ # helps locate libgcc*.so
+ '-L%s' % sysroot_dir.join('gcc-cross'),
+ '-L%s' % sysroot_dir.join('lib'),
+ '-L%s' % gl_dir.join('lib'),
+ # Explicitly do not use lld for cross compiling like this - I observed
+ # failures like "Unrecognized reloc 41" and couldn't find out why.
+ ]
+ else:
+ gl_dir = self.m.vars.slave_dir.join('chromebook_x86_64_gles')
+ env = {}
+ extra_asmflags = []
+ extra_cflags = [
+ '-DMESA_EGL_NO_X11_HEADERS',
+ '-DEGL_NO_IMAGE_EXTERNAL',
+ '-I%s' % gl_dir.join('include'),
+ ]
+ extra_ldflags = [
+ '-L%s' % gl_dir.join('lib'),
+ '-static-libstdc++', '-static-libgcc',
+ '-fuse-ld=lld',
+ ]
quote = lambda x: '"%s"' % x
args = {
@@ -136,7 +152,7 @@ class GNChromebookFlavorUtils(gn_flavor.GNFlavorUtils):
gn = self.m.vars.skia_dir.join('bin', gn)
with self.m.context(cwd=self.m.vars.skia_dir,
- env={'LD_LIBRARY_PATH': sysroot_dir.join('lib')}):
+ env=env):
self._py('fetch-gn', self.m.vars.skia_dir.join('bin', 'fetch-gn'))
self._run('gn gen', [gn, 'gen', self.out_dir, '--args=' + gn_args])
self._run('ninja', [ninja, '-C', self.out_dir, 'nanobench', 'dm'])