規則
j2objc_library
查看規則來源j2objc_library(name, deps, compatible_with, deprecation, distribs, entry_classes, features, jre_deps, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)
這項規則會使用 J2ObjC 將 Java 來源檔案翻譯為 Objective-C,然後做為 objc_library 和 objc_binary 規則的依附元件。如要進一步瞭解 J2ObjC,請前往 J2ObjC 網站。
您可以使用指令列中的建構標記 --j2objc_translation_flags,指定自訂 J2ObjC 轉譯標記。
請注意,j2objc_library 目標中包含的翻譯檔案會使用預設編譯設定進行編譯,與 objc_library 規則的來源相同,且屬性中未指定任何編譯選項。
此外,系統會在目標層級 (而非來源層級) 移除重複產生的程式碼。如果您有兩個不同的 Java 目標,但包含相同的 Java 來源檔案,連結時可能會看到重複的符號錯誤。如要正確解決這個問題,請將共用的 Java 來源檔案移至可做為依附元件的個別通用目標。
引數
| 屬性 | |
|---|---|
| name | 名稱:必填 這個目標的專屬名稱。 | 
| deps | 標籤清單;預設值為  j2objc_library、java_library、java_import和java_proto_library目標清單,其中包含要轉譯為 Objective-C 的 Java 檔案。所有可透過  J2ObjC 翻譯作業的運作方式,取決於遞移閉包中包含的來源 Java 來源檔案類型。針對  使用者可以在程式碼中匯入 J2ObjC 生成的標頭檔案。這些檔案的匯入路徑是原始 Java 構件的根相對路徑。舉例來說, 
        如果 proto_library 規則位於這項規則的遞移閉包中,系統也會在二進位層級產生、編譯及連結 J2ObjC proto。如果是 proto
         | 
| entry_classes | 字串清單;預設值為  --j2objc_dead_code_removal
        設為開啟,就必須提供這個屬性。Java 類別應以其標準名稱指定,如Java 語言規格所定義。
        指定--j2objc_dead_code_removal旗標時,系統會遞迴收集進入類別清單,並做為執行無效程式碼分析的進入點。系統隨後會從最終的 ObjC 應用程式套件中移除未使用的類別。 | 
| jre_deps | 標籤清單;預設值為  j2objc_library規則翻譯的所有 Java 程式碼,都需要額外的 JRE 模擬程式庫清單。根據預設,系統只會連結核心 JRE 功能。 | 
objc_import
查看規則來源objc_import(name, deps, hdrs, alwayslink, archives, compatible_with, deprecation, distribs, features, includes, licenses, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, tags, target_compatible_with, testonly, textual_hdrs, visibility, weak_sdk_frameworks)
這項規則會以 .a 檔案的形式,封裝已編譯的靜態程式庫。此外,您還能使用 objc_library 支援的相同屬性匯出標頭和資源。
引數
| 屬性 | |
|---|---|
| name | 名稱:必填 這個目標的專屬名稱。 | 
| deps | 標籤清單;預設值為  | 
| hdrs | 標籤清單;預設值為  這些標頭會說明程式庫的公開介面,並可供這個規則或依附規則中的來源納入。不應由這個程式庫的用戶端納入的標頭,應改為列在 srcs 屬性中。 如果啟用模組,這些項目會與來源分開編譯。 | 
| alwayslink | 布林值;預設值為  srcs和non_arc_srcs中列出的所有物件檔案,即使部分檔案不含二進位檔參照的符號也一樣。如果二進位檔中的程式碼未明確呼叫您的程式碼,例如您的程式碼註冊接收某項服務提供的某些回呼,這就很有用。 | 
| archives | 標籤清單 (必要)提供給依附於這個目標的 Objective-C 目標的 .a檔案清單。 | 
| includes | 字串清單;預設值為  #include/#import搜尋路徑清單。
          這是為了支援未在#import/#include陳述式中指定完整工作區路徑的第三方和開放原始碼程式庫。
          路徑會根據套件目錄解讀,且除了實際的用戶端根目錄外,還會包含 genfiles 和 bin 根目錄 (例如  與 COPTS 不同,這些標記會新增至這項規則和所有依附於這項規則的規則。(注意:不是規則所依據的規則!)請務必謹慎操作,因為這可能會造成深遠影響。如有疑問,請改為在 COPTS 中加入「-iquote」旗標。 | 
| sdk_dylibs | 字串清單;預設值為  | 
| sdk_frameworks | 字串清單;預設值為  連結頂層 Apple 二進位檔時,系統會連結該二進位檔的遞移依附元件圖表中列出的所有 SDK 架構。 | 
| sdk_includes | 字串清單;預設值為  #include/#import搜尋路徑清單,其中每個路徑都與$(SDKROOT)/usr/include相關。 | 
| textual_hdrs | 標籤清單;預設值為  | 
| weak_sdk_frameworks | 字串清單;預設值為  | 
objc_library
查看規則來源objc_library(name, deps, srcs, data, hdrs, alwayslink, compatible_with, copts, defines, deprecation, distribs, enable_modules, exec_compatible_with, exec_properties, features, implementation_deps, includes, licenses, linkopts, module_map, module_name, non_arc_srcs, pch, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, tags, target_compatible_with, testonly, textual_hdrs, toolchains, visibility, weak_sdk_frameworks)
這項規則會從指定的 Objective-C 來源檔案產生靜態程式庫。
引數
| 屬性 | |
|---|---|
| name | 名稱:必填 這個目標的專屬名稱。 | 
| deps | 標籤清單;預設值為  | 
| srcs | 標籤清單;預設值為  | 
| hdrs | 標籤清單;預設值為  這些標頭會說明程式庫的公開介面,並可供這個規則或依附規則中的來源納入。不應由這個程式庫的用戶端納入的標頭,應改為列在 srcs 屬性中。 如果啟用模組,這些項目會與來源分開編譯。 | 
| alwayslink | 布林值;預設值為  srcs和non_arc_srcs中列出的所有物件檔案,即使部分檔案不含二進位檔參照的符號也一樣。如果二進位檔中的程式碼未明確呼叫您的程式碼,例如您的程式碼註冊接收某項服務提供的某些回呼,這就很有用。 | 
| copts | 字串清單;預設值為  請注意,對於產生的 Xcode 專案,系統會剖析 copts 中使用「-I」標記指定的目錄路徑,如果這些路徑是相對路徑,則會在前面加上「$(WORKSPACE_ROOT)/」,並新增至相關聯 Xcode 目標的標頭搜尋路徑。 | 
| defines | 字串清單;預設值為  -D旗標。這些標籤應採用KEY=VALUE形式,或只是KEY,且不僅會傳遞至這個目標的編譯器 (如copts),也會傳遞至這個目標的所有objc_依附項。須遵守「製作變數」替代和 Bourne Shell 權杖化。 | 
| enable_modules | 布林值;預設值為  | 
| implementation_deps | 標籤清單;預設值為  deps不同,這些程式庫 (以及所有遞移依附元件) 的標頭和包含路徑僅用於編譯這個程式庫,而非依附於這個程式庫的程式庫。以implementation_deps指定的程式庫仍會連結至依附於這個程式庫的二進位目標。 | 
| includes | 字串清單;預設值為  #include/#import搜尋路徑清單。
          這是為了支援未在#import/#include陳述式中指定完整工作區路徑的第三方和開放原始碼程式庫。
          路徑會根據套件目錄解讀,且除了實際的用戶端根目錄外,還會包含 genfiles 和 bin 根目錄 (例如  與 COPTS 不同,這些標記會新增至這項規則和所有依附於這項規則的規則。(注意:不是規則所依據的規則!)請務必謹慎操作,因為這可能會造成深遠影響。如有疑問,請改為在 COPTS 中加入「-iquote」旗標。 | 
| linkopts | 字串清單;預設值為  | 
| module_map | 標籤;預設值為  | 
| module_name | 字串;預設值為  | 
| non_arc_srcs | 標籤清單;預設值為  | 
| pch | 標籤;預設值為  | 
| sdk_dylibs | 字串清單;預設值為  | 
| sdk_frameworks | 字串清單;預設值為  連結頂層 Apple 二進位檔時,系統會連結該二進位檔的遞移依附元件圖表中列出的所有 SDK 架構。 | 
| sdk_includes | 字串清單;預設值為  #include/#import搜尋路徑清單,其中每個路徑都與$(SDKROOT)/usr/include相關。 | 
| textual_hdrs | 標籤清單;預設值為  | 
| weak_sdk_frameworks | 字串清單;預設值為  | 
available_xcodes
查看規則來源available_xcodes(name, default, deprecation, distribs, features, licenses, tags, testonly, versions, visibility)
xcode_config 規則執行個體可依附於這項規則的兩個目標,指出遠端和本機可用的 Xcode 版本。這樣一來,您就能從所有可用的 Xcode 中選取正式版。
引數
| 屬性 | |
|---|---|
| name | 名稱:必填 這個目標的專屬名稱。 | 
| default | 這個平台的預設 Xcode 版本。 | 
| versions | 這個平台提供的 Xcode 版本。 | 
xcode_config
查看規則來源xcode_config(name, default, deprecation, distribs, features, licenses, local_versions, remote_versions, tags, testonly, versions, visibility)
--xcode_version_config 建構標記可以參照這項規則的單一目標,將 --xcode_version 標記轉換為可接受的正式 Xcode 版本。這樣一來,您就能從多個已註冊的別名中選取正式版 Xcode。
引數
| 屬性 | |
|---|---|
| name | 名稱:必填 這個目標的專屬名稱。 | 
| default | 要使用的預設官方 Xcode 版本。
        如果未指定 xcode_version建構旗標,系統會使用所提供xcode_version目標指定的版本。如果設定任何versions,就必須提供這項資訊。如果已設定remote_versions或local_versions,則可能無法設定此屬性。 | 
| local_versions | 當地可用的 xcode_version目標。
        這些項目會與local_versions一起使用,選取可用的版本。如果已設定versions,則可能不會設定這項屬性。 | 
| remote_versions | 可遠端使用的 xcode_version目標。
        這些項目會與remote_versions一起使用,選取可用的版本。如果已設定versions,則可能不會設定這項屬性。 | 
| versions | 可使用的接受 xcode_version目標。
        如果xcode_version建構旗標的值與任何指定xcode_version目標的別名或版本號碼相符,系統就會使用相符的目標。如果已設定remote_versions或local_versions,則可能無法設定此屬性。 | 
xcode_version
查看規則來源xcode_version(name, default_ios_sdk_version, default_macos_sdk_version, default_tvos_sdk_version, default_visionos_sdk_version, default_watchos_sdk_version, deprecation, distribs, features, licenses, tags, testonly, version, visibility)
代表單一官方 Xcode 版本,以及該 Xcode 版本的可接受別名。
請參閱 xcode_config 規則。
引數
| 屬性 | |
|---|---|
| name | 名稱:必填 這個目標的專屬名稱。 | 
| default_ios_sdk_version | 字串;不可設定;預設值為  ios_sdk_version建構旗標會覆寫這裡指定的值。 | 
| default_macos_sdk_version | 字串;不可設定;預設值為  macos_sdk_version建構旗標會覆寫這裡指定的值。 | 
| default_tvos_sdk_version | 字串;不可設定;預設值為  tvos_sdk_version建構旗標會覆寫這裡指定的值。 | 
| default_visionos_sdk_version | 字串;不可設定;預設值為  visionos_sdk_version建構旗標會覆寫這裡指定的值。 | 
| default_watchos_sdk_version | 字串;不可設定;預設值為  watchos_sdk_version建構旗標會覆寫這裡指定的值。 | 
| version | 字串;不可設定;必要Xcode 版本的正式版本號碼。 |