diff options
author | Martin Robinson <mrobinson@igalia.com> | 2023-05-24 19:40:30 +0200 |
---|---|---|
committer | Martin Robinson <mrobinson@igalia.com> | 2023-05-25 16:58:05 +0200 |
commit | debc37a7d3269c194a21a592dacf94df9f065b4e (patch) | |
tree | 672c8b021c1ebe0bf2d7e2473e3f7c7b49547de7 /python/servo/devenv_commands.py | |
parent | e9a7787a4d7e3a836853fd8b319951f20879fc83 (diff) | |
download | servo-debc37a7d3269c194a21a592dacf94df9f065b4e.tar.gz servo-debc37a7d3269c194a21a592dacf94df9f065b4e.zip |
Clean up cross-compilation and features
Integrate cross-compilation and media-stack handling into the
`build_like_command_arguments` decorator. This removes a lot of
repetition in the code and standardizes how targets are selected for all
similar commands.
Now cross compilation targets, feature flags, and helper variables are
stored in the CommandBase instance. This also avoids having to
continuously pass these arguments down to functions called by the
commands.
Diffstat (limited to 'python/servo/devenv_commands.py')
-rw-r--r-- | python/servo/devenv_commands.py | 53 |
1 files changed, 16 insertions, 37 deletions
diff --git a/python/servo/devenv_commands.py b/python/servo/devenv_commands.py index 77b95ba743f..065afed2a45 100644 --- a/python/servo/devenv_commands.py +++ b/python/servo/devenv_commands.py @@ -35,21 +35,13 @@ class MachCommands(CommandBase): 'params', default=None, nargs='...', help="Command-line arguments to be passed through to cargo check") @CommandBase.build_like_command_arguments - def check(self, params, features=[], media_stack=None, target=None, - android=False, **kwargs): + def check(self, params, **kwargs): if not params: params = [] - features = features or [] - - target, android = self.pick_target_triple(target, android) - - features += self.pick_media_stack(media_stack, target) - - self.ensure_bootstrapped(target=target) + self.ensure_bootstrapped() self.ensure_clobbered() - - status = self.run_cargo_build_like_command("check", params, features=features, **kwargs) + status = self.run_cargo_build_like_command("check", params, **kwargs) if status == 0: print('Finished checking, binary NOT updated. Consider ./mach build before ./mach run') @@ -128,21 +120,13 @@ class MachCommands(CommandBase): 'params', default=None, nargs='...', help="Command-line arguments to be passed through to cargo-fix") @CommandBase.build_like_command_arguments - def cargo_fix(self, params, features=[], media_stack=None, target=None, - android=False, **kwargs): + def cargo_fix(self, params, **kwargs): if not params: params = [] - features = features or [] - - target, android = self.pick_target_triple(target, android) - - features += self.pick_media_stack(media_stack, target) - - self.ensure_bootstrapped(target=target) + self.ensure_bootstrapped() self.ensure_clobbered() - - return self.run_cargo_build_like_command("fix", params, features=features, **kwargs) + return self.run_cargo_build_like_command("fix", params, **kwargs) @Command('cargo-clippy', description='Run "cargo clippy"', @@ -151,21 +135,13 @@ class MachCommands(CommandBase): 'params', default=None, nargs='...', help="Command-line arguments to be passed through to cargo-clippy") @CommandBase.build_like_command_arguments - def cargo_clippy(self, params, features=[], media_stack=None, target=None, - android=False, **kwargs): + def cargo_clippy(self, params, **kwargs): if not params: params = [] - features = features or [] - - target, android = self.pick_target_triple(target, android) - - features += self.pick_media_stack(media_stack, target) - - self.ensure_bootstrapped(target=target) + self.ensure_bootstrapped() self.ensure_clobbered() - - return self.run_cargo_build_like_command("clippy", params, features=features, **kwargs) + return self.run_cargo_build_like_command("clippy", params, **kwargs) @Command('grep', description='`git grep` for selected directories.', @@ -224,9 +200,11 @@ class MachCommands(CommandBase): if not path.isfile(logfile): print(logfile + " doesn't exist") return -1 - env = self.build_env(target=target) + + self.cross_compile_target = target + env = self.build_env() ndk_stack = path.join(env["ANDROID_NDK"], "ndk-stack") - self.handle_android_target(target) + self.setup_configuration_for_android_target(target) sym_path = path.join( "target", target, @@ -244,8 +222,9 @@ class MachCommands(CommandBase): @CommandArgument('--target', action='store', default="armv7-linux-androideabi", help="Build target") def ndk_gdb(self, release, target): - env = self.build_env(target) - self.handle_android_target(target) + self.cross_compile_target = target + self.setup_configuration_for_android_target(target) + env = self.build_env() ndk_gdb = path.join(env["ANDROID_NDK"], "ndk-gdb") adb_path = path.join(env["ANDROID_SDK"], "platform-tools", "adb") sym_paths = [ |