From a323e04671a2efffa353eaccf731c3afc1e79c69 Mon Sep 17 00:00:00 2001 From: chriseth Date: Mon, 24 Apr 2023 18:40:37 +0200 Subject: [PATCH 1/2] Auto-detect if argument is crate or not. --- cli/src/main.rs | 9 +-------- riscv/src/lib.rs | 12 ++++-------- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/cli/src/main.rs b/cli/src/main.rs index c0fce8e9d..d58b10c2a 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -20,14 +20,9 @@ enum Commands { /// and finally to PIL and generates fixed and witness columns. /// Needs `rustup target add riscv32imc-unknown-none-elf`. Rust { - /// Input file or directory. + /// Input file (rust source file) or directory (containing a crate). file: String, - /// Compile a full cargo crate with dependencies. - #[arg(long)] - #[arg(default_value_t = false)] - cargo: bool, - /// Comma-separated list of free inputs (numbers). #[arg(short, long)] #[arg(default_value_t = String::new())] @@ -126,14 +121,12 @@ fn main() { match command { Commands::Rust { file, - cargo, inputs, output_directory, force, } => { riscv::compile_rust( &file, - cargo, split_inputs(&inputs), Path::new(&output_directory), force, diff --git a/riscv/src/lib.rs b/riscv/src/lib.rs index fa393ef4d..6afc9a2bc 100644 --- a/riscv/src/lib.rs +++ b/riscv/src/lib.rs @@ -17,18 +17,14 @@ pub mod parser; /// fixed and witness columns. pub fn compile_rust( file_name: &str, - full_crate: bool, inputs: Vec, output_dir: &Path, force_overwrite: bool, ) { - let riscv_asm = if full_crate { - let cargo_toml = if file_name.ends_with("Cargo.toml") { - file_name.to_string() - } else { - format!("{file_name}/Cargo.toml") - }; - compile_rust_crate_to_riscv_asm(&cargo_toml) + let riscv_asm = if file_name.ends_with("Cargo.toml") { + compile_rust_crate_to_riscv_asm(file_name) + } else if fs::metadata(file_name).unwrap().is_dir() { + compile_rust_crate_to_riscv_asm(&format!("{file_name}/Cargo.toml")) } else { compile_rust_to_riscv_asm(file_name) }; From 9095fa5e4f206cf9704b75b632d11f9cb9b84b06 Mon Sep 17 00:00:00 2001 From: chriseth Date: Mon, 24 Apr 2023 18:41:42 +0200 Subject: [PATCH 2/2] Create output directory. --- riscv/src/lib.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/riscv/src/lib.rs b/riscv/src/lib.rs index 6afc9a2bc..d334b1f4a 100644 --- a/riscv/src/lib.rs +++ b/riscv/src/lib.rs @@ -28,6 +28,9 @@ pub fn compile_rust( } else { compile_rust_to_riscv_asm(file_name) }; + if !output_dir.exists() { + fs::create_dir_all(output_dir).unwrap() + } for (asm_file_name, contents) in &riscv_asm { let riscv_asm_file_name = output_dir.join(format!( "{}_riscv_{asm_file_name}.asm",