Override strip even if you explicitly enable it in the passed profile (#5052)
This commit is contained in:
1 parent
386153672e
commit
5b8bc358db
1 file changed
+22
-25
@@ -5211,44 +5211,41 @@ __wbg_init({{module_or_path: "/{}/{wasm_path}"}}).then((wasm) => {{
|
|||||||
///
|
///
|
||||||
/// Note how every platform gets its own profile, and each platform has a dev and release profile.
|
/// Note how every platform gets its own profile, and each platform has a dev and release profile.
|
||||||
fn profile_args(&self) -> Vec<String> {
|
fn profile_args(&self) -> Vec<String> {
|
||||||
|
// Always disable stripping so symbols still exist for the asset system. We will apply strip manually
|
||||||
|
// after assets are built
|
||||||
|
let profile = self.profile.as_str();
|
||||||
|
let mut args = Vec::new();
|
||||||
|
args.push(format!(r#"profile.{profile}.strip=false"#));
|
||||||
|
|
||||||
// If the user defined the profile in the Cargo.toml, we don't need to add it to our adhoc list
|
// If the user defined the profile in the Cargo.toml, we don't need to add it to our adhoc list
|
||||||
if self
|
if !self
|
||||||
.workspace
|
.workspace
|
||||||
.cargo_toml
|
.cargo_toml
|
||||||
.profile
|
.profile
|
||||||
.custom
|
.custom
|
||||||
.contains_key(&self.profile)
|
.contains_key(&self.profile)
|
||||||
{
|
{
|
||||||
return vec![];
|
// Otherwise, we need to add the profile arguments to make it adhoc
|
||||||
}
|
let inherits = if self.release { "release" } else { "dev" };
|
||||||
|
|
||||||
// Otherwise, we need to add the profile arguments to make it adhoc
|
// Add the profile definition first.
|
||||||
let mut args = Vec::new();
|
args.push(format!(r#"profile.{profile}.inherits="{inherits}""#));
|
||||||
|
|
||||||
let profile = self.profile.as_str();
|
// The default dioxus experience is to lightly optimize the web build, both in debug and release
|
||||||
let inherits = if self.release { "release" } else { "dev" };
|
// Note that typically in release builds, you would strip debuginfo, but we actually choose to do
|
||||||
|
// that with wasm-opt tooling instead.
|
||||||
|
if matches!(self.bundle, BundleFormat::Web) {
|
||||||
|
if self.release {
|
||||||
|
args.push(format!(r#"profile.{profile}.opt-level="s""#));
|
||||||
|
}
|
||||||
|
|
||||||
// Add the profile definition first.
|
if self.wasm_split {
|
||||||
args.push(format!(r#"profile.{profile}.inherits="{inherits}""#));
|
args.push(format!(r#"profile.{profile}.lto=true"#));
|
||||||
|
args.push(format!(r#"profile.{profile}.debug=true"#));
|
||||||
// The default dioxus experience is to lightly optimize the web build, both in debug and release
|
}
|
||||||
// Note that typically in release builds, you would strip debuginfo, but we actually choose to do
|
|
||||||
// that with wasm-opt tooling instead.
|
|
||||||
if matches!(self.bundle, BundleFormat::Web) {
|
|
||||||
if self.release {
|
|
||||||
args.push(format!(r#"profile.{profile}.opt-level="s""#));
|
|
||||||
}
|
|
||||||
|
|
||||||
if self.wasm_split {
|
|
||||||
args.push(format!(r#"profile.{profile}.lto=true"#));
|
|
||||||
args.push(format!(r#"profile.{profile}.debug=true"#));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Always disable stripping so symbols still exist for the asset system. We will apply strip manually
|
|
||||||
// after assets are built
|
|
||||||
args.push(format!(r#"profile.{profile}.strip=false"#));
|
|
||||||
|
|
||||||
// Prepend --config to each argument
|
// Prepend --config to each argument
|
||||||
args.into_iter()
|
args.into_iter()
|
||||||
.flat_map(|arg| ["--config".to_string(), arg])
|
.flat_map(|arg| ["--config".to_string(), arg])
|
||||||
|
|||||||
Reference in new issue
Block a user