Bug 1278415 - Also write a mozinfo for js standalone builds. r?gps
Historically, a mozinfo for js standalone build has not been necessary,
but with the move towards a) having things work with mach and b)
buildconfig using the MozbuildObject.from_environment in next patch,
mozinfo becomes necessary (it's required for
MozbuildObject.from_environment to find the directory is an objdir).
Interestingly, hazard builds do both a js standalone build and a desktop
Firefox build at the same time, both of which are done with MOZCONFIG
set in the environment... with the Firefox mozconfig. The result of now
writing a mozinfo for js standalone builds is that in that case, they
end up with a reference to the mozconfig, which the build system then
reads, and finds a MOZ_OBJDIR, which then doesn't match the js
standalone build objdir. So for those builds, reset MOZCONFIG.
--- a/config/tests/test_mozbuild_reading.py
+++ b/config/tests/test_mozbuild_reading.py
@@ -77,16 +77,19 @@ class TestMozbuildReading(unittest.TestC
try:
config = mb.config_environment
except Exception as e:
if e.message == 'config.status not available. Run configure.':
raise unittest.SkipTest('failing without config.status')
raise
+ if config.substs['MOZ_BUILD_APP'] == 'js':
+ raise unittest.SkipTest('failing in Spidermonkey builds')
+
reader = BuildReader(config)
all_paths = self._mozbuilds(reader)
_, contexts = reader.read_relevant_mozbuilds(all_paths)
finder = FileFinder(config.topsrcdir, find_executables=False,
ignore=['obj*'])
def pattern_exists(pat):
--- a/configure.py
+++ b/configure.py
@@ -77,18 +77,17 @@ if __name__ == '__main__':
from mozbuild.config_status import config_status
config_status(**args)
''')
# Other things than us are going to run this file, so we need to give it
# executable permissions.
os.chmod('config.status', 0755)
if config.get('MOZ_BUILD_APP') != 'js' or config.get('JS_STANDALONE'):
- if not config.get('JS_STANDALONE'):
- os.environ['WRITE_MOZINFO'] = '1'
+ os.environ['WRITE_MOZINFO'] = '1'
# Until we have access to the virtualenv from this script, execute
# config.status externally, with the virtualenv python.
return subprocess.call([config['PYTHON'], 'config.status'])
return 0
if __name__ == '__main__':
sys.exit(main(sys.argv))
--- a/python/mozbuild/mozbuild/mozinfo.py
+++ b/python/mozbuild/mozbuild/mozinfo.py
@@ -15,17 +15,17 @@ import mozbuild.mozconfig as mozconfig
def build_dict(config, env=os.environ):
"""
Build a dict containing data about the build configuration from
the environment.
"""
substs = config.substs
# Check that all required variables are present first.
- required = ["TARGET_CPU", "OS_TARGET", "MOZ_WIDGET_TOOLKIT"]
+ required = ["TARGET_CPU", "OS_TARGET"]
missing = [r for r in required if r not in substs]
if missing:
raise Exception("Missing required environment variables: %s" %
', '.join(missing))
d = {}
d['topsrcdir'] = config.topsrcdir
@@ -33,25 +33,25 @@ def build_dict(config, env=os.environ):
if the_mozconfig:
d['mozconfig'] = the_mozconfig
# os
o = substs["OS_TARGET"]
known_os = {"Linux": "linux",
"WINNT": "win",
"Darwin": "mac",
- "Android": "b2g" if substs["MOZ_WIDGET_TOOLKIT"] == "gonk" else "android"}
+ "Android": "b2g" if substs.get("MOZ_WIDGET_TOOLKIT") == "gonk" else "android"}
if o in known_os:
d["os"] = known_os[o]
else:
# Allow unknown values, just lowercase them.
d["os"] = o.lower()
# Widget toolkit, just pass the value directly through.
- d["toolkit"] = substs["MOZ_WIDGET_TOOLKIT"]
+ d["toolkit"] = substs.get("MOZ_WIDGET_TOOLKIT")
# Application name
if 'MOZ_APP_NAME' in substs:
d["appname"] = substs["MOZ_APP_NAME"]
# Build app name
if 'MOZ_MULET' in substs and substs.get('MOZ_MULET') == "1":
d["buildapp"] = "mulet"
--- a/taskcluster/scripts/builder/hazard-analysis.sh
+++ b/taskcluster/scripts/builder/hazard-analysis.sh
@@ -31,18 +31,20 @@ fi
function build_js_shell () {
( cd $JS_SRCDIR; autoconf-2.13 )
if [[ -z "$HAZ_DEP" ]]; then
[ -d $HAZARD_SHELL_OBJDIR ] && rm -rf $HAZARD_SHELL_OBJDIR
fi
mkdir -p $HAZARD_SHELL_OBJDIR || true
cd $HAZARD_SHELL_OBJDIR
- $JS_SRCDIR/configure --enable-optimize --disable-debug --enable-ctypes --enable-nspr-build --without-intl-api --with-ccache
- make -j4
+ ( export MOZCONFIG=
+ $JS_SRCDIR/configure --enable-optimize --disable-debug --enable-ctypes --enable-nspr-build --without-intl-api --with-ccache
+ make -j4
+ )
}
function configure_analysis () {
local analysis_dir
analysis_dir="$1"
if [[ -z "$HAZ_DEP" ]]; then
[ -d "$analysis_dir" ] && rm -rf "$analysis_dir"