Index: build/scripts/slave/runhooks_wrapper.py |
=================================================================== |
--- build/scripts/slave/runhooks_wrapper.py (revision 0) |
+++ build/scripts/slave/runhooks_wrapper.py (working copy) |
@@ -0,0 +1,47 @@ |
+#!/usr/bin/env python |
+# Copyright 2014 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. |
+ |
+"""Wrapper script for `gclient runhooks`. |
+ |
+This is useful to set slave-dependent gyp defines. |
+""" |
+ |
+import optparse |
+import os |
+import sys |
+ |
+from common import chromium_utils |
+ |
+ |
+# Path of the scripts/slave/ checkout on the slave, found by looking at the |
+# current runhooks_wrapper.py script's path's dirname(). |
+SLAVE_SCRIPTS_DIR = os.path.dirname(os.path.abspath(__file__)) |
+# Path of the build/ checkout on the slave, found relative to the |
+# scripts/slave/ directory. |
+BUILD_DIR = os.path.dirname(os.path.dirname(SLAVE_SCRIPTS_DIR)) |
iannucci
2014/04/15 18:45:29
can we put an os.path.abspath(...) around this?
Nico
2014/04/15 18:56:43
This is copypasta'd from compile.py. The SLAVE_SCR
|
+ |
+ |
+def main(): |
+ parser = optparse.OptionParser(description=__doc__) |
+ parser.add_option('--use-goma', action='store_true') |
+ parser.add_option('--goma-dir', |
+ default=os.path.join(BUILD_DIR, 'goma'), |
+ help='goma directory, only used if --use-goma is passed') |
+ options, args = parser.parse_args() |
+ assert not args |
+ |
+ if options.use_goma: |
+ # Add goma-related GYP_DEFINES if requested. This is done in a slave script |
+ # because goma_dir is a slave-relative path and is not known to the master. |
+ gyp_defines = os.environ.get('GYP_DEFINES', '') |
iannucci
2014/04/15 18:45:29
should we check this to ensure it doesn't already
Nico
2014/04/15 18:56:43
I think it doesn't matter much. No master currentl
|
+ gyp_defines += ' use_goma=1 gomadir=' + options.goma_dir |
iannucci
2014/04/15 18:45:29
IIRC, gomadir needs stupid quoting on windows. I b
Nico
2014/04/15 18:56:43
Oh right, good catch! Done.
|
+ os.environ['GYP_DEFINES'] = gyp_defines |
+ print 'Changed GYP_DEFINES to', os.environ['GYP_DEFINES'] |
+ |
+ return chromium_utils.RunCommand(['gclient', 'runhooks']) |
+ |
+ |
+if '__main__' == __name__: |
+ sys.exit(main()) |