|
@@ -35,8 +35,22 @@ pub fn gen(
|
|
|
(handlebars, mut map): (Handlebars, template::JsonMap),
|
|
|
wrapper: &TextWrapper,
|
|
|
) -> Result<()> {
|
|
|
- println!("Installing Android toolchains...");
|
|
|
- Target::install_all().with_context(|| "failed to run rustup")?;
|
|
|
+ let installed_targets =
|
|
|
+ crate::interface::rust::installation::installed_targets().unwrap_or_default();
|
|
|
+ let missing_targets = Target::all()
|
|
|
+ .values()
|
|
|
+ .filter(|t| !installed_targets.contains(&t.triple().into()))
|
|
|
+ .collect::<Vec<&Target>>();
|
|
|
+
|
|
|
+ if !missing_targets.is_empty() {
|
|
|
+ println!("Installing Android Rust toolchains...");
|
|
|
+ for target in missing_targets {
|
|
|
+ target
|
|
|
+ .install()
|
|
|
+ .context("failed to install target with rustup")?;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
println!("Generating Android Studio project...");
|
|
|
let dest = config.project_dir();
|
|
|
let asset_packs = metadata.asset_packs().unwrap_or_default();
|