Index: infra/bots/recipe_modules/skia/gn_flavor.py |
diff --git a/infra/bots/recipe_modules/skia/gn_flavor.py b/infra/bots/recipe_modules/skia/gn_flavor.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d7fa86c77f3836763d6fea0615520c68e7102538 |
--- /dev/null |
+++ b/infra/bots/recipe_modules/skia/gn_flavor.py |
@@ -0,0 +1,33 @@ |
+# Copyright 2016 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+import default_flavor |
+ |
+"""GN flavor utils, used for building Skia with GN.""" |
+class GNFlavorUtils(default_flavor.DefaultFlavorUtils): |
+ def compile(self, target): |
+ """Build Skia with GN.""" |
+ # Get the gn executable. |
+ fetch_gn = self._skia_api.skia_dir.join('bin', 'fetch-gn') |
+ self._skia_api.run(self._skia_api.m.step, 'fetch-gn', cmd=[fetch_gn], |
+ cwd=self._skia_api.skia_dir) |
+ |
+ is_debug = 'is_debug=true' |
+ if self._skia_api.configuration != 'Debug': |
+ is_debug = 'is_debug=false' |
+ gn_args = [is_debug] |
+ |
+ # Run gn gen. |
+ gn_exe = 'gn' |
+ if self._skia_api.m.platform.is_win: |
+ gn_exe = 'gn.exe' |
+ gn_gen = [gn_exe, 'gen', self.out_dir, '--args=%s' % ' '.join(gn_args)] |
+ self._skia_api.run(self._skia_api.m.step, 'gn_gen', cmd=gn_gen, |
+ cwd=self._skia_api.skia_dir) |
+ |
+ # Run ninja. |
+ ninja_cmd = ['ninja', '-C', self.out_dir] |
+ self._skia_api.run(self._skia_api.m.step, 'compile %s' % target, |
+ cmd=ninja_cmd, |
+ cwd=self._skia_api.skia_dir) |