build/buildconfig.py
author Nick Alexander <nalexander@mozilla.com>
Tue, 01 Mar 2016 20:12:04 -0800
changeset 287833 d316d6160a5f23b6baabb17ad08872c43c59e37a
parent 119476 bd4704b3f8a2fd6d29019c563f09bddb11fc3d47
child 300052 b6db2e11244e06e2563e7444709060cd9ea90e9f
permissions -rw-r--r--
Bug 1252928 - Part 1: Use Jake Wharton's sdk-manager-plugin in Fennec's Gradle configuration. r=sebastian This is a version produced locally from https://github.com/JakeWharton/sdk-manager-plugin/commit/1d07987217120fffdc0ce1291d73e974310d7d92. I used |./gradlew install| and then copied the pieces out of ~/.m2/repository. Local builders should never download using this plugin, since |mach configure| ensures that all the relevant pieces can already be found. It's just useful in automation; and as an eventual replacement for chunks of |mach bootstrap|. MozReview-Commit-ID: 9JiFe0xLr99

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

import imp
import os
import sys

path = os.path.dirname(__file__)
while not os.path.exists(os.path.join(path, 'config.status')):
    parent = os.path.normpath(os.path.join(path, os.pardir))
    if parent == path:
        raise Exception("Can't find config.status")
    path = parent

path = os.path.join(path, 'config.status')
config = imp.load_module('_buildconfig', open(path), path, ('', 'r', imp.PY_SOURCE))

# Copy values from the config.status namespace into this module namespace.
# This effectively imports topsrcdir, topobjdir, defines, substs, files,
# headers and non_global_defines
for var in config.__all__:
    value = getattr(config, var)
    if isinstance(value, list) and value and isinstance(value[0], tuple):
        value = dict(value)
    setattr(sys.modules[__name__], var, value)

for var in os.environ:
    if var != 'SHELL' and var in substs:
        substs[var] = os.environ[var]