87 lines
3.2 KiB
Diff
87 lines
3.2 KiB
Diff
diff --git a/python/mozbuild/mozbuild/build_commands.py b/python/mozbuild/mozbuild/build_commands.py
|
|
--- a/python/mozbuild/mozbuild/build_commands.py
|
|
+++ b/python/mozbuild/mozbuild/build_commands.py
|
|
@@ -183,10 +183,11 @@
|
|
directory=directory,
|
|
verbose=verbose,
|
|
keep_going=keep_going,
|
|
mach_context=command_context._mach_context,
|
|
append_env=append_env,
|
|
+ virtualenv_topobjdir=orig_topobjdir,
|
|
)
|
|
if status != 0:
|
|
return status
|
|
|
|
# Packaging the instrumented build is required to get the jarlog
|
|
@@ -206,11 +207,11 @@
|
|
pgo_env["LLVM_PROFDATA"] = instr.config_environment.substs.get(
|
|
"LLVM_PROFDATA"
|
|
)
|
|
pgo_env["JARLOG_FILE"] = mozpath.join(orig_topobjdir, "jarlog/en-US.log")
|
|
pgo_cmd = [
|
|
- instr.virtualenv_manager.python_path,
|
|
+ command_context.virtualenv_manager.python_path,
|
|
mozpath.join(command_context.topsrcdir, "build/pgo/profileserver.py"),
|
|
]
|
|
subprocess.check_call(pgo_cmd, cwd=instr.topobjdir, env=pgo_env)
|
|
|
|
# Set the default build to MOZ_PROFILE_USE
|
|
diff --git a/python/mozbuild/mozbuild/controller/building.py b/python/mozbuild/mozbuild/controller/building.py
|
|
--- a/python/mozbuild/mozbuild/controller/building.py
|
|
+++ b/python/mozbuild/mozbuild/controller/building.py
|
|
@@ -1220,10 +1220,11 @@
|
|
directory=None,
|
|
verbose=False,
|
|
keep_going=False,
|
|
mach_context=None,
|
|
append_env=None,
|
|
+ virtualenv_topobjdir=None,
|
|
):
|
|
"""Invoke the build backend.
|
|
|
|
``what`` defines the thing to build. If not defined, the default
|
|
target is used.
|
|
@@ -1297,10 +1298,11 @@
|
|
config_rc = self.configure(
|
|
metrics,
|
|
buildstatus_messages=True,
|
|
line_handler=output.on_line,
|
|
append_env=append_env,
|
|
+ virtualenv_topobjdir=virtualenv_topobjdir,
|
|
)
|
|
|
|
if config_rc != 0:
|
|
return config_rc
|
|
|
|
@@ -1635,10 +1637,11 @@
|
|
metrics,
|
|
options=None,
|
|
buildstatus_messages=False,
|
|
line_handler=None,
|
|
append_env=None,
|
|
+ virtualenv_topobjdir=None,
|
|
):
|
|
# Disable indexing in objdir because it is not necessary and can slow
|
|
# down builds.
|
|
self.metrics = metrics
|
|
mkdir(self.topobjdir, not_indexed=True)
|
|
@@ -1658,15 +1661,16 @@
|
|
if line.startswith("export "):
|
|
k, eq, v = line[len("export ") :].partition("=")
|
|
if eq == "=":
|
|
append_env[k] = v
|
|
|
|
+ virtualenv_topobjdir = virtualenv_topobjdir or self.topobjdir
|
|
build_site = CommandSiteManager.from_environment(
|
|
self.topsrcdir,
|
|
lambda: get_state_dir(specific_to_topsrcdir=True, topsrcdir=self.topsrcdir),
|
|
"build",
|
|
- os.path.join(self.topobjdir, "_virtualenvs"),
|
|
+ os.path.join(virtualenv_topobjdir, "_virtualenvs"),
|
|
)
|
|
build_site.ensure()
|
|
|
|
command = [build_site.python_path, os.path.join(self.topsrcdir, "configure.py")]
|
|
if options:
|
|
|