import sys # 'lib' or 'bin' crate_type = sys.argv[1] crate_name = sys.argv[2] if crate_type == "bin": input_rs = f"{crate_name}/src/main.rs" outfile = f"out/bin/{crate_name}" else: input_rs = f"{crate_name}/src/lib.rs" outfile = f"out/lib/lib{crate_name}.rlib" dep_crates = sys.argv[3:] dep_inputs = " ".join([f"out/lib/lib{dep}.rlib" for dep in dep_crates]) externs = " ".join([f"--extern {dep}=out/lib/lib{dep}.rlib" for dep in dep_crates]) flags = "--edition=2024 -C opt-level=3 -C embed-bitcode=no -C strip=debuginfo --emit=link" inputs = f"{crate_name}/src/*.rs" print(f": {crate_name}/src/*.rs {dep_inputs} |> rustc --crate-name {crate_name} --crate-type={crate_type} {input_rs} -o %o {externs} {flags} |> {outfile}")