Only use substrate-wasm-builder when std feature is enabled. (#12790)

Co-authored-by: parity-processbot <>
This commit is contained in:
Nazar Mokrynskyi
2023-01-06 12:24:12 +02:00
committed by GitHub
parent 9fe5dd5f59
commit dccef86edb
13 changed files with 109 additions and 80 deletions
@@ -51,7 +51,7 @@ frame-system-benchmarking = { version = "4.0.0-dev", default-features = false, p
pallet-template = { version = "4.0.0-dev", default-features = false, path = "../pallets/template" }
[build-dependencies]
substrate-wasm-builder = { version = "5.0.0-dev", path = "../../../utils/wasm-builder" }
substrate-wasm-builder = { version = "5.0.0-dev", path = "../../../utils/wasm-builder", optional = true }
[features]
default = ["std"]
@@ -86,6 +86,7 @@ std = [
"sp-std/std",
"sp-transaction-pool/std",
"sp-version/std",
"substrate-wasm-builder",
]
runtime-benchmarks = [
"frame-benchmarking/runtime-benchmarks",
+8 -7
View File
@@ -1,9 +1,10 @@
use substrate_wasm_builder::WasmBuilder;
fn main() {
WasmBuilder::new()
.with_current_project()
.export_heap_base()
.import_memory()
.build()
#[cfg(feature = "std")]
{
substrate_wasm_builder::WasmBuilder::new()
.with_current_project()
.export_heap_base()
.import_memory()
.build();
}
}
+2 -1
View File
@@ -113,7 +113,7 @@ pallet-vesting = { version = "4.0.0-dev", default-features = false, path = "../.
pallet-whitelist = { version = "4.0.0-dev", default-features = false, path = "../../../frame/whitelist" }
[build-dependencies]
substrate-wasm-builder = { version = "5.0.0-dev", path = "../../../utils/wasm-builder" }
substrate-wasm-builder = { version = "5.0.0-dev", path = "../../../utils/wasm-builder", optional = true }
[features]
default = ["std"]
@@ -205,6 +205,7 @@ std = [
"sp-io/std",
"pallet-child-bounties/std",
"pallet-alliance/std",
"substrate-wasm-builder",
]
runtime-benchmarks = [
"frame-benchmarking/runtime-benchmarks",
+8 -7
View File
@@ -15,12 +15,13 @@
// See the License for the specific language governing permissions and
// limitations under the License.
use substrate_wasm_builder::WasmBuilder;
fn main() {
WasmBuilder::new()
.with_current_project()
.export_heap_base()
.import_memory()
.build()
#[cfg(feature = "std")]
{
substrate_wasm_builder::WasmBuilder::new()
.with_current_project()
.export_heap_base()
.import_memory()
.build();
}
}
@@ -19,7 +19,7 @@ sp-runtime = { version = "7.0.0", default-features = false, path = "../../../pri
sp-std = { version = "5.0.0", default-features = false, path = "../../../primitives/std" }
[build-dependencies]
substrate-wasm-builder = { version = "5.0.0-dev", path = "../../../utils/wasm-builder" }
substrate-wasm-builder = { version = "5.0.0-dev", path = "../../../utils/wasm-builder", optional = true }
[features]
default = ["std"]
@@ -28,4 +28,5 @@ std = [
"sp-io/std",
"sp-runtime/std",
"sp-std/std",
"substrate-wasm-builder",
]
+18 -14
View File
@@ -16,22 +16,26 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
use substrate_wasm_builder::WasmBuilder;
fn main() {
// regular build
WasmBuilder::new()
.with_current_project()
.export_heap_base()
.import_memory()
.build();
#[cfg(feature = "std")]
{
substrate_wasm_builder::WasmBuilder::new()
.with_current_project()
.export_heap_base()
.import_memory()
.build();
}
// and building with tracing activated
WasmBuilder::new()
.with_current_project()
.export_heap_base()
.import_memory()
.set_file_name("wasm_binary_with_tracing.rs")
.append_to_rust_flags(r#"--cfg feature="with-tracing""#)
.build();
#[cfg(feature = "std")]
{
substrate_wasm_builder::WasmBuilder::new()
.with_current_project()
.export_heap_base()
.import_memory()
.set_file_name("wasm_binary_with_tracing.rs")
.append_to_rust_flags(r#"--cfg feature="with-tracing""#)
.build();
}
}
@@ -19,8 +19,14 @@ sp-runtime-interface = { version = "7.0.0", default-features = false, path = "..
sp-std = { version = "5.0.0", default-features = false, path = "../../std" }
[build-dependencies]
substrate-wasm-builder = { version = "5.0.0-dev", path = "../../../utils/wasm-builder" }
substrate-wasm-builder = { version = "5.0.0-dev", path = "../../../utils/wasm-builder", optional = true }
[features]
default = [ "std" ]
std = [ "sp-core/std", "sp-io/std", "sp-runtime-interface/std", "sp-std/std" ]
std = [
"sp-core/std",
"sp-io/std",
"sp-runtime-interface/std",
"sp-std/std",
"substrate-wasm-builder",
]
@@ -15,12 +15,13 @@
// See the License for the specific language governing permissions and
// limitations under the License.
use substrate_wasm_builder::WasmBuilder;
fn main() {
WasmBuilder::new()
.with_current_project()
.export_heap_base()
.import_memory()
.build()
#[cfg(feature = "std")]
{
substrate_wasm_builder::WasmBuilder::new()
.with_current_project()
.export_heap_base()
.import_memory()
.build();
}
}
@@ -20,8 +20,14 @@ sp-runtime-interface = { version = "7.0.0", default-features = false, path = "..
sp-std = { version = "5.0.0", default-features = false, path = "../../std" }
[build-dependencies]
substrate-wasm-builder = { version = "5.0.0-dev", path = "../../../utils/wasm-builder" }
substrate-wasm-builder = { version = "5.0.0-dev", path = "../../../utils/wasm-builder", optional = true }
[features]
default = [ "std" ]
std = [ "sp-core/std", "sp-io/std", "sp-runtime-interface/std", "sp-std/std" ]
std = [
"sp-core/std",
"sp-io/std",
"sp-runtime-interface/std",
"sp-std/std",
"substrate-wasm-builder",
]
@@ -15,12 +15,13 @@
// See the License for the specific language governing permissions and
// limitations under the License.
use substrate_wasm_builder::WasmBuilder;
fn main() {
WasmBuilder::new()
.with_current_project()
.export_heap_base()
.import_memory()
.build()
#[cfg(feature = "std")]
{
substrate_wasm_builder::WasmBuilder::new()
.with_current_project()
.export_heap_base()
.import_memory()
.build();
}
}
+2 -1
View File
@@ -59,7 +59,7 @@ substrate-test-runtime-client = { version = "2.0.0", path = "./client" }
futures = "0.3.21"
[build-dependencies]
substrate-wasm-builder = { version = "5.0.0-dev", path = "../../utils/wasm-builder" }
substrate-wasm-builder = { version = "5.0.0-dev", path = "../../utils/wasm-builder", optional = true }
[features]
default = [
@@ -101,6 +101,7 @@ std = [
"sp-trie/std",
"sp-transaction-pool/std",
"trie-db/std",
"substrate-wasm-builder",
]
# Special feature to disable logging
disable-logging = [ "sp-api/disable-logging" ]
+22 -18
View File
@@ -15,24 +15,28 @@
// See the License for the specific language governing permissions and
// limitations under the License.
use substrate_wasm_builder::WasmBuilder;
fn main() {
WasmBuilder::new()
.with_current_project()
.export_heap_base()
// Note that we set the stack-size to 1MB explicitly even though it is set
// to this value by default. This is because some of our tests (`restoration_of_globals`)
// depend on the stack-size.
.append_to_rust_flags("-Clink-arg=-zstack-size=1048576")
.import_memory()
.build();
#[cfg(feature = "std")]
{
substrate_wasm_builder::WasmBuilder::new()
.with_current_project()
.export_heap_base()
// Note that we set the stack-size to 1MB explicitly even though it is set
// to this value by default. This is because some of our tests
// (`restoration_of_globals`) depend on the stack-size.
.append_to_rust_flags("-Clink-arg=-zstack-size=1048576")
.import_memory()
.build();
}
WasmBuilder::new()
.with_current_project()
.export_heap_base()
.import_memory()
.set_file_name("wasm_binary_logging_disabled.rs")
.enable_feature("disable-logging")
.build();
#[cfg(feature = "std")]
{
substrate_wasm_builder::WasmBuilder::new()
.with_current_project()
.export_heap_base()
.import_memory()
.set_file_name("wasm_binary_logging_disabled.rs")
.enable_feature("disable-logging")
.build();
}
}
+13 -12
View File
@@ -8,23 +8,24 @@ The Wasm builder is a tool that integrates the process of building the WASM bina
A project that should be compiled as a Wasm binary needs to:
1. Add a `build.rs` file.
2. Add `wasm-builder` as dependency into `build-dependencies`.
2. Add `wasm-builder` as dependency into `build-dependencies` (can be made optional and only enabled when `std` feature is used).
The `build.rs` file needs to contain the following code:
```rust
use substrate_wasm_builder::WasmBuilder;
fn main() {
WasmBuilder::new()
// Tell the builder to build the project (crate) this `build.rs` is part of.
.with_current_project()
// Make sure to export the `heap_base` global, this is required by Substrate
.export_heap_base()
// Build the Wasm file so that it imports the memory (need to be provided by at instantiation)
.import_memory()
// Build it.
.build()
#[cfg(feature = "std")]
{
substrate_wasm_builder::WasmBuilder::new()
// Tell the builder to build the project (crate) this `build.rs` is part of.
.with_current_project()
// Make sure to export the `heap_base` global, this is required by Substrate
.export_heap_base()
// Build the Wasm file so that it imports the memory (need to be provided by at instantiation)
.import_memory()
// Build it.
.build();
}
}
```