| # 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] |