Merge pull request #1443 from codeart1st/split-linked-modules

feat: allow bindgen-cli --split-linked-modules #1092
master
Jesper Håkansson 6 months ago committed by GitHub
commit ba5fef3206
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 2
      docs/src/cargo-toml-configuration.md
  2. 3
      src/bindgen.rs
  3. 13
      src/manifest/mod.rs

@ -29,6 +29,8 @@ demangle-name-section = true
dwarf-debug-info = false dwarf-debug-info = false
# Should we omit the default import path? # Should we omit the default import path?
omit-default-module-path = false omit-default-module-path = false
# Controls whether wasm-bindgen will split linked modules out into their own files. Enabling this is recommended, because it allows lazy-loading the linked modules and setting a stricter Content Security Policy. Only available in wasm-bindgen 0.2.95 and later.
split-linked-modules = false
[package.metadata.wasm-pack.profile.profiling] [package.metadata.wasm-pack.profile.profiling]
wasm-opt = ['-O'] wasm-opt = ['-O']

@ -92,6 +92,9 @@ pub fn wasm_bindgen_build(
if profile.wasm_bindgen_omit_default_module_path() { if profile.wasm_bindgen_omit_default_module_path() {
cmd.arg("--omit-default-module-path"); cmd.arg("--omit-default-module-path");
} }
if profile.wasm_bindgen_split_linked_modules() {
cmd.arg("--split-linked-modules");
}
child::run(cmd, "wasm-bindgen").context("Running the wasm-bindgen CLI")?; child::run(cmd, "wasm-bindgen").context("Running the wasm-bindgen CLI")?;
Ok(()) Ok(())

@ -127,6 +127,9 @@ struct CargoWasmPackProfileWasmBindgen {
#[serde(default, rename = "omit-default-module-path")] #[serde(default, rename = "omit-default-module-path")]
omit_default_module_path: Option<bool>, omit_default_module_path: Option<bool>,
#[serde(default, rename = "split-linked-modules")]
split_linked_modules: Option<bool>,
} }
/// Struct for storing information received from crates.io /// Struct for storing information received from crates.io
@ -283,6 +286,7 @@ impl CargoWasmPackProfile {
demangle_name_section: Some(true), demangle_name_section: Some(true),
dwarf_debug_info: Some(false), dwarf_debug_info: Some(false),
omit_default_module_path: Some(false), omit_default_module_path: Some(false),
split_linked_modules: Some(false),
}, },
wasm_opt: None, wasm_opt: None,
} }
@ -295,6 +299,7 @@ impl CargoWasmPackProfile {
demangle_name_section: Some(true), demangle_name_section: Some(true),
dwarf_debug_info: Some(false), dwarf_debug_info: Some(false),
omit_default_module_path: Some(false), omit_default_module_path: Some(false),
split_linked_modules: Some(false),
}, },
wasm_opt: Some(CargoWasmPackProfileWasmOpt::Enabled(true)), wasm_opt: Some(CargoWasmPackProfileWasmOpt::Enabled(true)),
} }
@ -307,6 +312,7 @@ impl CargoWasmPackProfile {
demangle_name_section: Some(true), demangle_name_section: Some(true),
dwarf_debug_info: Some(false), dwarf_debug_info: Some(false),
omit_default_module_path: Some(false), omit_default_module_path: Some(false),
split_linked_modules: Some(false),
}, },
wasm_opt: Some(CargoWasmPackProfileWasmOpt::Enabled(true)), wasm_opt: Some(CargoWasmPackProfileWasmOpt::Enabled(true)),
} }
@ -319,6 +325,7 @@ impl CargoWasmPackProfile {
demangle_name_section: Some(true), demangle_name_section: Some(true),
dwarf_debug_info: Some(false), dwarf_debug_info: Some(false),
omit_default_module_path: Some(false), omit_default_module_path: Some(false),
split_linked_modules: Some(false),
}, },
wasm_opt: Some(CargoWasmPackProfileWasmOpt::Enabled(true)), wasm_opt: Some(CargoWasmPackProfileWasmOpt::Enabled(true)),
} }
@ -370,6 +377,7 @@ impl CargoWasmPackProfile {
d!(wasm_bindgen.demangle_name_section); d!(wasm_bindgen.demangle_name_section);
d!(wasm_bindgen.dwarf_debug_info); d!(wasm_bindgen.dwarf_debug_info);
d!(wasm_bindgen.omit_default_module_path); d!(wasm_bindgen.omit_default_module_path);
d!(wasm_bindgen.split_linked_modules);
if self.wasm_opt.is_none() { if self.wasm_opt.is_none() {
self.wasm_opt = defaults.wasm_opt.clone(); self.wasm_opt = defaults.wasm_opt.clone();
@ -396,6 +404,11 @@ impl CargoWasmPackProfile {
self.wasm_bindgen.omit_default_module_path.unwrap() self.wasm_bindgen.omit_default_module_path.unwrap()
} }
/// Get this profile's configured `[wasm-bindgen.split-linked-modules]` value.
pub fn wasm_bindgen_split_linked_modules(&self) -> bool {
self.wasm_bindgen.split_linked_modules.unwrap()
}
/// Get this profile's configured arguments for `wasm-opt`, if enabled. /// Get this profile's configured arguments for `wasm-opt`, if enabled.
pub fn wasm_opt_args(&self) -> Option<Vec<String>> { pub fn wasm_opt_args(&self) -> Option<Vec<String>> {
match self.wasm_opt.as_ref()? { match self.wasm_opt.as_ref()? {

Loading…
Cancel
Save