mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-21 09:45:41 +00:00
Release new version of wasm-builder-runner (#7283)
* Release new version of wasm-builder-runner Besides the new version this merges `SKIP_WASM_BUILD` and `BUILD_DUMMY_WASM_BINARY`, this means a file is generated with `SKIP_WASM_BUILD` if no file existed before. * Update utils/wasm-builder-runner/Cargo.toml * Update utils/wasm-builder-runner/src/lib.rs Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com> * Update versions Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
This commit is contained in:
Generated
+1
-1
@@ -8922,7 +8922,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "substrate-wasm-builder-runner"
|
name = "substrate-wasm-builder-runner"
|
||||||
version = "1.0.6"
|
version = "2.0.0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "subtle"
|
name = "subtle"
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ hex-literal = { version = "0.3.1", optional = true }
|
|||||||
template = { version = "2.0.0", default-features = false, path = "../pallets/template", package = "pallet-template" }
|
template = { version = "2.0.0", default-features = false, path = "../pallets/template", package = "pallet-template" }
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
wasm-builder-runner = { version = "1.0.5", package = "substrate-wasm-builder-runner", path = "../../../utils/wasm-builder-runner" }
|
wasm-builder-runner = { version = "2.0.0", package = "substrate-wasm-builder-runner", path = "../../../utils/wasm-builder-runner" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["std"]
|
default = ["std"]
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ pallet-transaction-payment-rpc-runtime-api = { version = "2.0.0", default-featur
|
|||||||
pallet-vesting = { version = "2.0.0", default-features = false, path = "../../../frame/vesting" }
|
pallet-vesting = { version = "2.0.0", default-features = false, path = "../../../frame/vesting" }
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
wasm-builder-runner = { version = "1.0.5", package = "substrate-wasm-builder-runner", path = "../../../utils/wasm-builder-runner" }
|
wasm-builder-runner = { version = "2.0.0", package = "substrate-wasm-builder-runner", path = "../../../utils/wasm-builder-runner" }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
sp-io = { version = "2.0.0", path = "../../../primitives/io" }
|
sp-io = { version = "2.0.0", path = "../../../primitives/io" }
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ sp-runtime = { version = "2.0.0", default-features = false, path = "../../../pri
|
|||||||
sp-allocator = { version = "2.0.0", default-features = false, path = "../../../primitives/allocator" }
|
sp-allocator = { version = "2.0.0", default-features = false, path = "../../../primitives/allocator" }
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
wasm-builder-runner = { version = "1.0.5", package = "substrate-wasm-builder-runner", path = "../../../utils/wasm-builder-runner" }
|
wasm-builder-runner = { version = "2.0.0", package = "substrate-wasm-builder-runner", path = "../../../utils/wasm-builder-runner" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = [ "std" ]
|
default = [ "std" ]
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ sp-io = { version = "2.0.0", default-features = false, path = "../../io" }
|
|||||||
sp-core = { version = "2.0.0", default-features = false, path = "../../core" }
|
sp-core = { version = "2.0.0", default-features = false, path = "../../core" }
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
wasm-builder-runner = { version = "1.0.5", package = "substrate-wasm-builder-runner", path = "../../../utils/wasm-builder-runner" }
|
wasm-builder-runner = { version = "2.0.0", package = "substrate-wasm-builder-runner", path = "../../../utils/wasm-builder-runner" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = [ "std" ]
|
default = [ "std" ]
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ sp-io = { version = "2.0.0", default-features = false, path = "../../io" }
|
|||||||
sp-core = { version = "2.0.0", default-features = false, path = "../../core" }
|
sp-core = { version = "2.0.0", default-features = false, path = "../../core" }
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
wasm-builder-runner = { version = "1.0.5", package = "substrate-wasm-builder-runner", path = "../../../utils/wasm-builder-runner" }
|
wasm-builder-runner = { version = "2.0.0", package = "substrate-wasm-builder-runner", path = "../../../utils/wasm-builder-runner" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = [ "std" ]
|
default = [ "std" ]
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ sc-executor = { version = "0.8.0", path = "../../client/executor" }
|
|||||||
substrate-test-runtime-client = { version = "2.0.0", path = "./client" }
|
substrate-test-runtime-client = { version = "2.0.0", path = "./client" }
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
wasm-builder-runner = { version = "1.0.5", package = "substrate-wasm-builder-runner", path = "../../utils/wasm-builder-runner" }
|
wasm-builder-runner = { version = "2.0.0", package = "substrate-wasm-builder-runner", path = "../../utils/wasm-builder-runner" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = [
|
default = [
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "substrate-wasm-builder-runner"
|
name = "substrate-wasm-builder-runner"
|
||||||
version = "1.0.6"
|
version = "2.0.0"
|
||||||
authors = ["Parity Technologies <admin@parity.io>"]
|
authors = ["Parity Technologies <admin@parity.io>"]
|
||||||
description = "Runner for substrate-wasm-builder"
|
description = "Runner for substrate-wasm-builder"
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|||||||
@@ -230,16 +230,19 @@ impl WasmBuilder {
|
|||||||
|
|
||||||
/// Build the WASM binary.
|
/// Build the WASM binary.
|
||||||
pub fn build(self) {
|
pub fn build(self) {
|
||||||
|
let out_dir = PathBuf::from(env::var("OUT_DIR").expect("`OUT_DIR` is set by cargo!"));
|
||||||
|
let file_path = out_dir.join(self.file_name.unwrap_or_else(|| "wasm_binary.rs".into()));
|
||||||
|
|
||||||
if check_skip_build() {
|
if check_skip_build() {
|
||||||
// If we skip the build, we still want to make sure to be called when an env variable
|
// If we skip the build, we still want to make sure to be called when an env variable
|
||||||
// changes
|
// changes
|
||||||
generate_rerun_if_changed_instructions();
|
generate_rerun_if_changed_instructions();
|
||||||
|
|
||||||
|
provide_dummy_wasm_binary(&file_path, true);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let out_dir = PathBuf::from(env::var("OUT_DIR").expect("`OUT_DIR` is set by cargo!"));
|
|
||||||
let file_path = out_dir.join(self.file_name.unwrap_or_else(|| "wasm_binary.rs".into()));
|
|
||||||
|
|
||||||
// Hash the path to the project cargo toml.
|
// Hash the path to the project cargo toml.
|
||||||
let mut hasher = DefaultHasher::new();
|
let mut hasher = DefaultHasher::new();
|
||||||
self.project_cargo_toml.hash(&mut hasher);
|
self.project_cargo_toml.hash(&mut hasher);
|
||||||
@@ -252,7 +255,7 @@ impl WasmBuilder {
|
|||||||
.join(format!("{}{}", project_name, hasher.finish()));
|
.join(format!("{}{}", project_name, hasher.finish()));
|
||||||
|
|
||||||
if check_provide_dummy_wasm_binary() {
|
if check_provide_dummy_wasm_binary() {
|
||||||
provide_dummy_wasm_binary(&file_path);
|
provide_dummy_wasm_binary(&file_path, false);
|
||||||
} else {
|
} else {
|
||||||
create_project(
|
create_project(
|
||||||
&project_folder,
|
&project_folder,
|
||||||
@@ -381,7 +384,7 @@ fn create_project(
|
|||||||
fs::create_dir_all(project_folder.join("src"))
|
fs::create_dir_all(project_folder.join("src"))
|
||||||
.expect("WASM build runner dir create can not fail; qed");
|
.expect("WASM build runner dir create can not fail; qed");
|
||||||
|
|
||||||
fs::write(
|
write_file_if_changed(
|
||||||
project_folder.join("Cargo.toml"),
|
project_folder.join("Cargo.toml"),
|
||||||
format!(
|
format!(
|
||||||
r#"
|
r#"
|
||||||
@@ -396,10 +399,10 @@ fn create_project(
|
|||||||
[workspace]
|
[workspace]
|
||||||
"#,
|
"#,
|
||||||
wasm_builder_source = wasm_builder_source.to_cargo_source(&get_manifest_dir()),
|
wasm_builder_source = wasm_builder_source.to_cargo_source(&get_manifest_dir()),
|
||||||
)
|
),
|
||||||
).expect("WASM build runner `Cargo.toml` writing can not fail; qed");
|
);
|
||||||
|
|
||||||
fs::write(
|
write_file_if_changed(
|
||||||
project_folder.join("src/main.rs"),
|
project_folder.join("src/main.rs"),
|
||||||
format!(
|
format!(
|
||||||
r#"
|
r#"
|
||||||
@@ -418,8 +421,8 @@ fn create_project(
|
|||||||
file_path = replace_back_slashes(file_path.display()),
|
file_path = replace_back_slashes(file_path.display()),
|
||||||
cargo_toml_path = replace_back_slashes(cargo_toml_path.display()),
|
cargo_toml_path = replace_back_slashes(cargo_toml_path.display()),
|
||||||
default_rustflags = default_rustflags,
|
default_rustflags = default_rustflags,
|
||||||
)
|
),
|
||||||
).expect("WASM build runner `main.rs` writing can not fail; qed");
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn run_project(project_folder: &Path) {
|
fn run_project(project_folder: &Path) {
|
||||||
@@ -465,11 +468,16 @@ fn check_provide_dummy_wasm_binary() -> bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Provide the dummy WASM binary
|
/// Provide the dummy WASM binary
|
||||||
fn provide_dummy_wasm_binary(file_path: &Path) {
|
///
|
||||||
fs::write(
|
/// If `skip_build` is `true`, it will only generate the wasm binary if it doesn't exist.
|
||||||
file_path,
|
fn provide_dummy_wasm_binary(file_path: &Path, skip_build: bool) {
|
||||||
"pub const WASM_BINARY: Option<&[u8]> = None; pub const WASM_BINARY_BLOATY: Option<&[u8]> = None;",
|
if !skip_build || !file_path.exists() {
|
||||||
).expect("Writing dummy WASM binary should not fail");
|
write_file_if_changed(
|
||||||
|
file_path.into(),
|
||||||
|
"pub const WASM_BINARY: Option<&[u8]> = None;\
|
||||||
|
pub const WASM_BINARY_BLOATY: Option<&[u8]> = None;".into(),
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Generate the `rerun-if-changed` instructions for cargo to make sure that the WASM binary is
|
/// Generate the `rerun-if-changed` instructions for cargo to make sure that the WASM binary is
|
||||||
@@ -481,3 +489,10 @@ fn generate_rerun_if_changed_instructions() {
|
|||||||
println!("cargo:rerun-if-env-changed={}", FORCE_WASM_BUILD_ENV);
|
println!("cargo:rerun-if-env-changed={}", FORCE_WASM_BUILD_ENV);
|
||||||
println!("cargo:rerun-if-env-changed={}", generate_crate_skip_build_env_name());
|
println!("cargo:rerun-if-env-changed={}", generate_crate_skip_build_env_name());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Write to the given `file` if the `content` is different.
|
||||||
|
fn write_file_if_changed(file: PathBuf, content: String) {
|
||||||
|
if fs::read_to_string(&file).ok().as_ref() != Some(&content) {
|
||||||
|
fs::write(&file, content).unwrap_or_else(|_| panic!("Writing `{}` can not fail!", file.display()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user