blob: c4e1a0e17615e2785a1b699e7f2a15f04e1b21eb [file] [log] [blame]
#!/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 pipes
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))
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', '')
# pipes.quote() is necessary on Windows: http://crbug.com/340918#c7 - 11.
gyp_defines += ' use_goma=1 gomadir=' + pipes.quote(options.goma_dir)
os.environ['GYP_DEFINES'] = gyp_defines
print 'Changed GYP_DEFINES to', os.environ['GYP_DEFINES']
return chromium_utils.RunCommand([chromium_utils.GetGClientCommand(),
'runhooks'])
if '__main__' == __name__:
sys.exit(main())