規則
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 |
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_ 依附元件。適用於 「Make 變數」替換和 Bourne 殼層符記化。 |
enable_modules
|
布林值;預設值為 |
implementation_deps
|
標籤清單;預設值為 deps 不同,這些程式庫的標頭和包含路徑 (以及所有傳遞依附元件) 只用於編譯這個程式庫,而非依附於此程式庫的程式庫。使用 implementation_deps 指定的程式庫仍會在依附此程式庫的二進位目標中連結。 |
includes
|
字串清單;預設值為 #include/#import 搜尋路徑清單。以便支援未在 #import/#include 陳述式中指定整個工作區路徑的第三方和開放原始碼程式庫。
系統會依據套件目錄解讀路徑,除了實際的用戶端根目錄以外,還包含 Genfile 和 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 中選取官方 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
|
字串;nonconfigurable;預設值為 ios_sdk_version 建構旗標會覆寫這裡指定的值。
|
default_macos_sdk_version
|
字串;不可設定;預設值為 macos_sdk_version 建構旗標會覆寫這裡指定的值。
|
default_tvos_sdk_version
|
字串;不可設定;預設值為 tvos_sdk_version 建構旗標會覆寫此處指定的值。 |
default_visionos_sdk_version
|
字串;nonconfigurable;預設值為 visionos_sdk_version 建構旗標會覆寫此處指定的值。 |
default_watchos_sdk_version
|
字串;不可設定;預設值為 watchos_sdk_version 建構旗標會覆寫這裡指定的值。
|
version
|
字串;nonconfigurable;必要 Xcode 版本的官方版本號碼。 |