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