diff --git a/.changes/fix-missing-options.md b/.changes/fix-missing-options.md new file mode 100644 index 000000000000..957f07a64f59 --- /dev/null +++ b/.changes/fix-missing-options.md @@ -0,0 +1,6 @@ +--- +"tauri-cli": patch:bug +"@tauri-apps/cli": patch:bug +--- + +Fix missing Cargo args when running mobile dev and build commands. diff --git a/crates/tauri-cli/src/interface/rust.rs b/crates/tauri-cli/src/interface/rust.rs index c4c339e697d6..d6026b3b24dd 100644 --- a/crates/tauri-cli/src/interface/rust.rs +++ b/crates/tauri-cli/src/interface/rust.rs @@ -425,7 +425,7 @@ fn dev_options( } *args = dev_args; - if mobile { + if mobile && !args.contains(&"--lib".into()) { args.push("--lib".into()); } @@ -483,7 +483,9 @@ impl Rust { pub fn build_options(&self, args: &mut Vec, features: &mut Vec, mobile: bool) { features.push("tauri/custom-protocol".into()); if mobile { - args.push("--lib".into()); + if !args.contains(&"--lib".into()) { + args.push("--lib".into()); + } } else { args.push("--bins".into()); } diff --git a/crates/tauri-cli/src/mobile/android/build.rs b/crates/tauri-cli/src/mobile/android/build.rs index e19a7c3769d9..3a4369402a8a 100644 --- a/crates/tauri-cli/src/mobile/android/build.rs +++ b/crates/tauri-cli/src/mobile/android/build.rs @@ -154,14 +154,22 @@ pub fn run( build_options.target = Some(first_target.triple.into()); let interface = AppInterface::new(tauri_config, build_options.target.clone(), dirs.tauri)?; - interface.build_options(&mut Vec::new(), &mut build_options.features, true); + interface.build_options(&mut build_options.args, &mut build_options.features, true); let app = get_app(MobileTarget::Android, tauri_config, &interface, dirs.tauri); let (config, metadata) = get_config( &app, tauri_config, &build_options.features, - &Default::default(), + &CliOptions { + dev: false, + features: build_options.features.clone(), + args: build_options.args.clone(), + noise_level, + vars: Default::default(), + config: build_options.config.clone(), + target_device: None, + }, ); let profile = if options.debug { diff --git a/crates/tauri-cli/src/mobile/android/dev.rs b/crates/tauri-cli/src/mobile/android/dev.rs index 3e143b7b5728..93692f6d0454 100644 --- a/crates/tauri-cli/src/mobile/android/dev.rs +++ b/crates/tauri-cli/src/mobile/android/dev.rs @@ -182,6 +182,7 @@ fn run_command(options: Options, noise_level: NoiseLevel, dirs: Dirs) -> Result< .map(|d| d.target().triple.to_string()) .unwrap_or_else(|| Target::all().values().next().unwrap().triple.into()); dev_options.target = Some(target_triple); + dev_options.args.push("--lib".into()); let interface = AppInterface::new(&tauri_config, dev_options.target.clone(), dirs.tauri)?; @@ -190,7 +191,15 @@ fn run_command(options: Options, noise_level: NoiseLevel, dirs: Dirs) -> Result< &app, &tauri_config, dev_options.features.as_ref(), - &Default::default(), + &CliOptions { + dev: true, + features: dev_options.features.clone(), + args: dev_options.args.clone(), + noise_level, + vars: Default::default(), + config: dev_options.config.clone(), + target_device: None, + }, ); set_current_dir(dirs.tauri).context("failed to set current directory to Tauri directory")?; diff --git a/crates/tauri-cli/src/mobile/ios/build.rs b/crates/tauri-cli/src/mobile/ios/build.rs index 1489417c0836..a016ccca3263 100644 --- a/crates/tauri-cli/src/mobile/ios/build.rs +++ b/crates/tauri-cli/src/mobile/ios/build.rs @@ -195,14 +195,22 @@ pub fn run(options: Options, noise_level: NoiseLevel, dirs: &Dirs) -> Result Result Result< .map(|d| d.target().triple.to_string()) .unwrap_or_else(|| "aarch64-apple-ios".into()); dev_options.target = Some(target_triple.clone()); + dev_options.args.push("--lib".into()); let tauri_config = get_tauri_config( tauri_utils::platform::Target::Ios, @@ -195,7 +196,15 @@ fn run_command(options: Options, noise_level: NoiseLevel, dirs: Dirs) -> Result< &app, &tauri_config, &dev_options.features, - &Default::default(), + &CliOptions { + dev: true, + features: dev_options.features.clone(), + args: dev_options.args.clone(), + noise_level, + vars: Default::default(), + config: dev_options.config.clone(), + target_device: None, + }, dirs.tauri, )?; @@ -297,7 +306,7 @@ fn run_dev( )?; } - crate::dev::setup(&interface, &mut dev_options, &mut tauri_config, &dirs)?; + crate::dev::setup(&interface, &mut dev_options, &mut tauri_config, dirs)?; let app_settings = interface.app_settings(); let out_dir = app_settings.out_dir( @@ -360,7 +369,7 @@ fn run_dev( open_xcode() } }, - &dirs, + dirs, ) } diff --git a/crates/tauri-cli/src/mobile/mod.rs b/crates/tauri-cli/src/mobile/mod.rs index f7ab30357f62..2e85355f32aa 100644 --- a/crates/tauri-cli/src/mobile/mod.rs +++ b/crates/tauri-cli/src/mobile/mod.rs @@ -166,7 +166,7 @@ impl Default for DevHost { } } -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Debug, Default, Clone, Serialize, Deserialize)] pub struct CliOptions { pub dev: bool, pub features: Vec, @@ -177,20 +177,6 @@ pub struct CliOptions { pub target_device: Option, } -impl Default for CliOptions { - fn default() -> Self { - Self { - dev: false, - features: Vec::new(), - args: vec!["--lib".into()], - noise_level: Default::default(), - vars: Default::default(), - config: Vec::new(), - target_device: None, - } - } -} - fn local_ip_address(force: bool) -> &'static IpAddr { static LOCAL_IP: OnceLock = OnceLock::new(); LOCAL_IP.get_or_init(|| {