aboutsummaryrefslogtreecommitdiffstats
path: root/python/servo/platform/base.py
diff options
context:
space:
mode:
authorSamson <16504129+sagudev@users.noreply.github.com>2023-12-01 16:50:52 +0100
committerGitHub <noreply@github.com>2023-12-01 15:50:52 +0000
commit604979e367faa6aa09805e8fa0223b8883ea009d (patch)
treeb61c5ffefbd4c43aa3e81bd89b70dad41d7c2626 /python/servo/platform/base.py
parent20a73721de2f1a8a0b29905617783148bd3cfaff (diff)
downloadservo-604979e367faa6aa09805e8fa0223b8883ea009d.tar.gz
servo-604979e367faa6aa09805e8fa0223b8883ea009d.zip
Replace script_plugins with a clippy like rustc driver (named crown) (#30508)
* Remove script_plugins * Use crown instead of script_plugins * crown_is_not_used * Use crown in command base * bootstrap crown * tidy happy * disable sccache * Bring crown in tree * Install crown from tree * fix windows ci * fix warning * fix mac libscript_plugins.dylib is not available anymore * Update components/script/lib.rs Co-authored-by: Martin Robinson <mrobinson@igalia.com> * Update for nightly-2023-03-18 Mostly just based off https://github.com/servo/servo/pull/30630 * Always install crown it's slow only when there is new version * Run crown test with `mach test-unit` * Small fixups; better trace_in_no_trace tests * Better doc * crown in config.toml * Fix tidy for real * no sccache on rustc_wrapper * document rustc overrides * fixup of compiletest * Make a few minor comment adjustments * Fix a typo in python/servo/platform/base.py Co-authored-by: Samson <16504129+sagudev@users.noreply.github.com> * Proper test types * Ignore tidy on crown/tests --------- Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Diffstat (limited to 'python/servo/platform/base.py')
-rw-r--r--python/servo/platform/base.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/python/servo/platform/base.py b/python/servo/platform/base.py
index d3d03cf80ef..e8a62400bd9 100644
--- a/python/servo/platform/base.py
+++ b/python/servo/platform/base.py
@@ -97,6 +97,7 @@ class Base:
def bootstrap(self, force: bool):
installed_something = self._platform_bootstrap(force)
installed_something |= self.install_taplo(force)
+ installed_something |= self.install_crown(force)
if not installed_something:
print("Dependencies were already installed!")
@@ -110,6 +111,18 @@ class Base:
return True
+ def install_crown(self, force: bool) -> bool:
+ # We need to override the rustc set in cargo/config.toml because crown
+ # may not be installed yet.
+ env = dict(os.environ)
+ env["CARGO_BUILD_RUSTC"] = "rustc"
+
+ if subprocess.call(["cargo", "install", "--path", "support/crown"],
+ stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=env) != 0:
+ raise EnvironmentError("Installation of crown failed.")
+
+ return True
+
def passive_bootstrap(self) -> bool:
"""A bootstrap method that is called without explicitly invoking `./mach bootstrap`
but that is executed in the process of other `./mach` commands. This should be