浏览代码

fix(cli): `ios xcode-script` arg parsing when using bun, closes #10742 (#11100)

Lucas Fernandes Nogueira 10 月之前
父节点
当前提交
56e087471a
共有 2 个文件被更改,包括 21 次插入13 次删除
  1. 6 0
      .changes/fix-bun-ios-usage.md
  2. 15 13
      crates/tauri-cli/src/mobile/ios/xcode_script.rs

+ 6 - 0
.changes/fix-bun-ios-usage.md

@@ -0,0 +1,6 @@
+---
+'tauri-cli': 'patch:bug'
+'@tauri-apps/cli': 'patch:bug'
+---
+
+Fix iOS xcode-script usage with `bun`.

+ 15 - 13
crates/tauri-cli/src/mobile/ios/xcode_script.rs

@@ -12,7 +12,7 @@ use crate::{
 
 
 use anyhow::Context;
 use anyhow::Context;
 use cargo_mobile2::{apple::target::Target, opts::Profile};
 use cargo_mobile2::{apple::target::Target, opts::Profile};
-use clap::Parser;
+use clap::{ArgAction, Parser};
 use object::{Object, ObjectSymbol};
 use object::{Object, ObjectSymbol};
 
 
 use std::{
 use std::{
@@ -33,14 +33,14 @@ pub struct Options {
   #[clap(long)]
   #[clap(long)]
   sdk_root: PathBuf,
   sdk_root: PathBuf,
   /// Value of `FRAMEWORK_SEARCH_PATHS` env var
   /// Value of `FRAMEWORK_SEARCH_PATHS` env var
-  #[clap(long)]
-  framework_search_paths: String,
+  #[clap(long, action = ArgAction::Append, num_args(0..))]
+  framework_search_paths: Vec<String>,
   /// Value of `GCC_PREPROCESSOR_DEFINITIONS` env var
   /// Value of `GCC_PREPROCESSOR_DEFINITIONS` env var
-  #[clap(long)]
-  gcc_preprocessor_definitions: String,
+  #[clap(long, action = ArgAction::Append, num_args(0..))]
+  gcc_preprocessor_definitions: Vec<String>,
   /// Value of `HEADER_SEARCH_PATHS` env var
   /// Value of `HEADER_SEARCH_PATHS` env var
-  #[clap(long)]
-  header_search_paths: String,
+  #[clap(long, action = ArgAction::Append, num_args(0..))]
+  header_search_paths: Vec<String>,
   /// Value of `CONFIGURATION` env var
   /// Value of `CONFIGURATION` env var
   #[clap(long)]
   #[clap(long)]
   configuration: String,
   configuration: String,
@@ -149,15 +149,17 @@ pub fn command(options: Options) -> Result<()> {
     include_dir.as_os_str(),
     include_dir.as_os_str(),
   );
   );
 
 
-  host_env.insert(
-    "FRAMEWORK_SEARCH_PATHS",
-    options.framework_search_paths.as_ref(),
-  );
+  let framework_search_paths = options.framework_search_paths.join(" ");
+  host_env.insert("FRAMEWORK_SEARCH_PATHS", framework_search_paths.as_ref());
+
+  let gcc_preprocessor_definitions = options.gcc_preprocessor_definitions.join(" ");
   host_env.insert(
   host_env.insert(
     "GCC_PREPROCESSOR_DEFINITIONS",
     "GCC_PREPROCESSOR_DEFINITIONS",
-    options.gcc_preprocessor_definitions.as_ref(),
+    gcc_preprocessor_definitions.as_ref(),
   );
   );
-  host_env.insert("HEADER_SEARCH_PATHS", options.header_search_paths.as_ref());
+
+  let header_search_paths = options.header_search_paths.join(" ");
+  host_env.insert("HEADER_SEARCH_PATHS", header_search_paths.as_ref());
 
 
   let macos_target = Target::macos();
   let macos_target = Target::macos();