diff --git a/Cargo.toml b/Cargo.toml index 1ebcc8c9906..80f2d0d203d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -162,6 +162,14 @@ xml5ever = "0.20" opt-level = 3 debug-assertions = true +# A profile between `dev` and `release` which aims to offer a compromise between +# fast incremental rebuilds and runtime speed. +[profile.medium] +inherits = "release" +opt-level = 2 +incremental = true +debug = "line-tables-only" + [profile.production] inherits = "release" debug-assertions = false diff --git a/python/servo/command_base.py b/python/servo/command_base.py index 1dcfe1e8408..1f8b6818c22 100644 --- a/python/servo/command_base.py +++ b/python/servo/command_base.py @@ -678,6 +678,10 @@ class CommandBase(object): elif self.config["build"]["mode"] == "release": print("No build type specified, but .servobuild specified `--release`.") return BuildType.release() + elif self.config["build"]["mode"] != "": + profile = self.config["build"]["mode"] + print(f"No build type specified, but .servobuild specified custom profile `{profile}`.") + return BuildType.custom(profile) else: print("No build type specified so assuming `--dev`.") return BuildType.dev() diff --git a/servobuild.example b/servobuild.example index bc8219b6673..40dd62e2421 100644 --- a/servobuild.example +++ b/servobuild.example @@ -14,6 +14,8 @@ [build] # Set "mode = dev" or use `mach build --dev` to build the project with warning. # or Set "mode = release" or use `mach build --release` for optimized build. +# Use `mode = ` or `mach build --profile=` to build the given +# profile. Check the `Cargo.toml` manifest for a complete list of custom profiles. # Defaults to prompting before building #mode = "dev"