Path: blob/main/tests/all/native_debug/obj.rs
2450 views
use anyhow::{Context as _, Result};1use std::fs::File;2use std::io::Write;3use std::path::Path;4use target_lexicon::Triple;5use wasmtime::{CodeBuilder, Config, Engine};67pub fn compile_cranelift(8wasm: &[u8],9path: Option<&Path>,10target: Option<Triple>,11output: impl AsRef<Path>,12) -> Result<()> {13let mut config = Config::new();14config.debug_info(true);15if let Some(target) = target {16config.target(&target.to_string())?;17}18let engine = Engine::new(&config)?;19let module = CodeBuilder::new(&engine)20.wasm_binary_or_text(wasm, path)?21.compile_module()?;22let bytes = module.serialize()?;2324let mut file = File::create(output).context("failed to create object file")?;25file.write_all(&bytes)26.context("failed to write object file")?;2728Ok(())29}303132