mirror of
https://github.com/esp-rs/espup.git
synced 2025-09-30 14:20:35 +00:00
feat: ⚡️ Avoid using a hardcoded Xtensa Rust version
This commit is contained in:
parent
275c0ccfc4
commit
76c903b9da
31
src/main.rs
31
src/main.rs
@ -17,7 +17,10 @@ use espup::{
|
||||
},
|
||||
gcc::{get_toolchain_name, install_gcc_targets},
|
||||
llvm::Llvm,
|
||||
rust::{check_rust_installation, install_riscv_target, Crate, XtensaRust},
|
||||
rust::{
|
||||
check_rust_installation, get_latest_xtensa_rust_version, install_riscv_target, Crate,
|
||||
XtensaRust,
|
||||
},
|
||||
},
|
||||
};
|
||||
use log::{debug, info, warn};
|
||||
@ -35,8 +38,6 @@ const DEFAULT_EXPORT_FILE: &str = "export-esp.ps1";
|
||||
const DEFAULT_EXPORT_FILE: &str = "export-esp.sh";
|
||||
/// Xtensa Rust Toolchain version regex.
|
||||
const RE_TOOLCHAIN_VERSION: &str = r"^(?P<major>0|[1-9]\d*)\.(?P<minor>0|[1-9]\d*)\.(?P<patch>0|[1-9]\d*)\.(?P<subpatch>0|[1-9]\d*)?$";
|
||||
/// Latest Xtensa Rust Toolchain version.
|
||||
const LATEST_TOOLCHAIN_VERSION: &str = "1.65.0.0";
|
||||
|
||||
#[derive(Parser)]
|
||||
#[command(
|
||||
@ -103,8 +104,8 @@ pub struct InstallOpts {
|
||||
#[arg(short = 't', long, default_value = "all")]
|
||||
pub targets: String,
|
||||
/// Xtensa Rust toolchain version.
|
||||
#[arg(short = 'v', long, default_value = LATEST_TOOLCHAIN_VERSION, value_parser = parse_version)]
|
||||
pub toolchain_version: String,
|
||||
#[arg(short = 'v', long, value_parser = parse_version)]
|
||||
pub toolchain_version: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Parser)]
|
||||
@ -116,7 +117,7 @@ pub struct UpdateOpts {
|
||||
#[arg(short = 'l', long, default_value = "info", value_parser = ["debug", "info", "warn", "error"])]
|
||||
pub log_level: String,
|
||||
/// Xtensa Rust toolchain version.
|
||||
#[arg(short = 'v', long, default_value = LATEST_TOOLCHAIN_VERSION, value_parser = parse_version)]
|
||||
#[arg(short = 'v', long, value_parser = parse_version)]
|
||||
pub toolchain_version: Option<String>,
|
||||
}
|
||||
|
||||
@ -153,7 +154,13 @@ fn install(args: InstallOpts) -> Result<()> {
|
||||
|| targets.contains(&Target::ESP32S2)
|
||||
|| targets.contains(&Target::ESP32S3)
|
||||
{
|
||||
Some(XtensaRust::new(&args.toolchain_version, &host_triple))
|
||||
let xtensa_rust: XtensaRust = if let Some(toolchain_version) = &args.toolchain_version {
|
||||
XtensaRust::new(toolchain_version, &host_triple)
|
||||
} else {
|
||||
let latest_version = get_latest_xtensa_rust_version()?;
|
||||
XtensaRust::new(&latest_version, &host_triple)
|
||||
};
|
||||
Some(xtensa_rust)
|
||||
} else {
|
||||
None
|
||||
};
|
||||
@ -308,12 +315,12 @@ fn update(args: UpdateOpts) -> Result<()> {
|
||||
info!("{} Updating ESP Rust environment", emoji::DISC);
|
||||
let host_triple = get_host_triple(args.default_host)?;
|
||||
let mut config = Config::load().unwrap();
|
||||
let xtensa_rust: XtensaRust;
|
||||
if let Some(toolchain_version) = args.toolchain_version {
|
||||
xtensa_rust = XtensaRust::new(&toolchain_version, &host_triple);
|
||||
let xtensa_rust: XtensaRust = if let Some(toolchain_version) = args.toolchain_version {
|
||||
XtensaRust::new(&toolchain_version, &host_triple)
|
||||
} else {
|
||||
xtensa_rust = XtensaRust::new(LATEST_TOOLCHAIN_VERSION, &host_triple);
|
||||
}
|
||||
let latest_version = get_latest_xtensa_rust_version()?;
|
||||
XtensaRust::new(&latest_version, &host_triple)
|
||||
};
|
||||
|
||||
debug!(
|
||||
"{} Arguments:
|
||||
|
Loading…
x
Reference in New Issue
Block a user