規則
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 傳輸標記
--j2objc_translation_flags
。
請注意,j2objc_library 目標中的翻譯檔案 預設編譯設定,與 建立一個 objc_library 規則,而屬性中沒有指定編譯選項。
此外,系統會在目標層級 (而非來源層級) 刪除重複的程式碼。如果你有兩個 包含相同 Java 來源檔案的不同 Java 目標,您可能會看到重複的符號錯誤 連結時間。解決這個問題的正確方式是將共用的 Java 來源檔案移到 可以依賴的個別常見目標。
引數
屬性 | |
---|---|
name |
此目標的專屬名稱。 |
deps
|
j2objc_library 、java_library 的清單
java_import 和 java_proto_library 個目標包含
將 Java 檔案轉入 Objective-C。
所有允許觸及的 J2ObjC 轉譯的運作方式會因來源 Java 來源類型而異
檔案。針對以下項目提供的所有 .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 規則。系統只會連結核心 JRE 功能。
|
objc_import
objc_import(name, 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
檔案。另外,您也能透過 Cloud Shell 的
objc_library
支援的屬性。
引數
屬性 | |
---|---|
name |
此目標的專屬名稱。 |
hdrs
|
這些標頭說明程式庫的公用介面, 由來源納入這項規則或適用 不過,編寫這類演算法並不容易 因為我們無法寫出所有可能的規則不應由這個程式庫的用戶端包含的標頭 應改為列在 srcs 屬性中。 如果已啟用模組,系統會將這些模組與來源分開編譯。 |
alwayslink
|
srcs 和 non_arc_srcs (即使有些不含任何值)
二進位參照的符號。
如果程式碼中的程式碼未明確呼叫,這個方法就很實用
二進位檔案 (舉例來說,如果您的程式碼註冊以取得某些回呼)
這項工具可讓您存取
該基礎架構的各項服務
|
archives
|
.a 檔案清單
取決於這個目標
|
includes
|
#include/#import 個搜尋路徑清單
且全部取決於指定目標
這會支援第三方和開放原始碼程式庫
指定整個工作區路徑
#import/#include 陳述式。
系統會根據套件目錄解譯路徑,
genfiles 和 bin roots (例如 與最佳化不同,系統會在這項規則中新增這些標記 並提供相關的所有規則(注意:而不是仰賴的規則!)成為 因為這樣可能帶來相當深遠的影響有疑慮就加上 「-iquote」標記為 COPTS。 |
sdk_dylibs
|
|
sdk_frameworks
|
連結頂層 Apple 二進位檔時,該二進位檔中 連結及遞移依附元件圖表。 |
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, runtime_deps, 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 專案,請使用「-I」指定的目錄路徑旗標 動物被剖析,在前面加上「$(WORKSPACE_ROOT)/」如果 Pod 是相對路徑 新增至相關 Xcode 目標的標頭搜尋路徑。 |
defines
|
-D 標記。他們應該會
KEY=VALUE 或 KEY 形式,
不僅會傳遞給此目標的編譯器 (做為 copts )
) 以及此目標的所有 objc_ 依附元件。
取決於「化變數」替代和
Bourne 殼層權杖化。
|
enable_modules
|
|
implementation_deps
|
deps ,標頭和包含這些程式庫的路徑 (及其全部路徑)
遞移依附元件) 只會用於這個程式庫的編譯作業,不適用於
依靠它使用 implementation_deps 指定的程式庫仍保持連結狀態
仰賴這個程式庫的二進位目標中
|
includes
|
#include/#import 個搜尋路徑清單
且全部取決於指定目標
這會支援第三方和開放原始碼程式庫
指定整個工作區路徑
#import/#include 陳述式。
系統會根據套件目錄解譯路徑,
genfiles 和 bin roots (例如 與最佳化不同,系統會在這項規則中新增這些標記 並提供相關的所有規則(注意:而不是仰賴的規則!)成為 因為這樣可能帶來相當深遠的影響有疑慮就加上 「-iquote」標記為 COPTS。 |
linkopts
|
|
module_map
|
|
module_name
|
|
non_arc_srcs
|
|
pch
|
|
runtime_deps
|
|
sdk_dylibs
|
|
sdk_frameworks
|
連結頂層 Apple 二進位檔時,該二進位檔中 連結及遞移依附元件圖表。 |
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 中選取官方 Xcode 版本。
引數
屬性 | |
---|---|
name |
此目標的專屬名稱。 |
default
|
|
versions
|
|
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_version 目標指定版本
未指定 xcode_version 建構旗標。(如有)
已設定 versions 。如果 remote_versions 或
local_versions 已設定。
|
local_versions
|
xcode_version |
remote_versions
|
xcode_version |
versions
|
xcode_version 項已接受 |
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
|
|