mirror of
https://github.com/tauri-apps/tauri.git
synced 2026-04-03 10:11:15 +02:00
fix(cli): missing options on mobile dev/build commands (#14932)
* fix(cli): missing options on mobile dev/build commands * avoid duplicated flags * clippy
This commit is contained in:
committed by
GitHub
parent
35c35f27ae
commit
0d1cb83bab
6
.changes/fix-missing-options.md
Normal file
6
.changes/fix-missing-options.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
"tauri-cli": patch:bug
|
||||
"@tauri-apps/cli": patch:bug
|
||||
---
|
||||
|
||||
Fix missing Cargo args when running mobile dev and build commands.
|
||||
@@ -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<String>, features: &mut Vec<String>, 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());
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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")?;
|
||||
|
||||
@@ -195,14 +195,22 @@ pub fn run(options: Options, noise_level: NoiseLevel, dirs: &Dirs) -> Result<Bui
|
||||
dirs.tauri,
|
||||
)?;
|
||||
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::Ios, &tauri_config, &interface, dirs.tauri);
|
||||
let (mut config, _) = 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,
|
||||
},
|
||||
dirs.tauri,
|
||||
)?;
|
||||
|
||||
@@ -328,7 +336,7 @@ pub fn run(options: Options, noise_level: NoiseLevel, dirs: &Dirs) -> Result<Bui
|
||||
&mut config,
|
||||
&mut env,
|
||||
noise_level,
|
||||
&dirs,
|
||||
dirs,
|
||||
)?;
|
||||
|
||||
if open {
|
||||
|
||||
@@ -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(|| "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,
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -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<String>,
|
||||
@@ -177,20 +177,6 @@ pub struct CliOptions {
|
||||
pub target_device: Option<TargetDevice>,
|
||||
}
|
||||
|
||||
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<IpAddr> = OnceLock::new();
|
||||
LOCAL_IP.get_or_init(|| {
|
||||
|
||||
Reference in New Issue
Block a user