0g-storage-node/common/contract-interface/build.rs
2024-01-04 18:05:32 +08:00

31 lines
1.1 KiB
Rust

use std::process::Command;
const INSTALL_ERROR_MESSAGE: &str =
"Install dependencies for contract fail, try to run `yarn` in folder 'zerog-storage-contracts'";
const COMPILE_ERROR_MESSAGE: &str =
"Compile solidity contracts fail, try to run `yarn compile` in folder 'zerog-storage-contracts'";
fn main() {
if cfg!(feature = "compile-contracts") {
println!("cargo:rerun-if-changed=../../zerog-storage-contracts/contracts/");
println!("cargo:rerun-if-changed=../../zerog-storage-contracts/hardhat.config.ts");
let output = Command::new("yarn")
.arg("--cwd")
.arg("../../zerog-storage-contracts")
.status()
.expect(INSTALL_ERROR_MESSAGE);
assert!(output.success(), "{}", INSTALL_ERROR_MESSAGE);
let output = Command::new("yarn")
.arg("--cwd")
.arg("../../zerog-storage-contracts")
.arg("compile")
.status()
.expect(COMPILE_ERROR_MESSAGE);
assert!(output.success(), "{}", COMPILE_ERROR_MESSAGE);
} else {
println!("cargo:rerun-if-changed=../../zerog-storage-contracts/artifacts/");
}
}