Chromium Code Reviews| 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()) |