規則
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 陳述式中指定整個工作區路徑的第三方和開放原始碼程式庫。
系統會依據套件目錄解讀路徑,除了實際的用戶端根目錄以外,還包含 Genfile 和 bin 根目錄 (例如 與最佳化調整不同的是,系統會將這些標記新增至這項規則及其相依的所有規則。(注意:而不是仰賴的規則!)請務必小心,因為這可能會造成嚴重影響。如有疑問,請改為在 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 專案,系統會剖析 Copt 中以「-I」旗標指定的目錄路徑,若為相對路徑,在路徑前面加上「$(WORKSPACE_ROOT)/」,且會新增至相關 Xcode 目標的標頭搜尋路徑。 |
defines
|
字串清單;預設值為 -D 標記。這些字串應採用 KEY=VALUE 格式或只是 KEY ,且不僅會傳遞給這個目標的編譯器 (就像 copts ),還會傳送給這個目標的所有 objc_ 依附元件。取決於「建立變數」和「Bourne 殼層權杖化」設定。 |
enable_modules
|
布林值;預設值為 |
implementation_deps
|
標籤清單;預設值為 deps 不同,這些程式庫的標頭和包含路徑 (及其所有遞移依附元件) 只會用於這個程式庫的編譯作業,不會用於依附該程式庫的程式庫。使用 implementation_deps 指定的程式庫仍會在依附於這個程式庫的二進位檔目標中連結。 |
includes
|
字串清單;預設值為 #include/#import 搜尋路徑清單。以便支援未在 #import/#include 陳述式中指定整個工作區路徑的第三方和開放原始碼程式庫。
系統會依據套件目錄解讀路徑,除了實際的用戶端根目錄以外,還包含 Genfile 和 bin 根目錄 (例如 與最佳化調整不同的是,系統會將這些標記新增至這項規則及其相依的所有規則。(注意:而不是仰賴的規則!)請務必小心,因為這可能會造成嚴重影響。如有疑問,請改為在 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
|
字串;nonconfigurable;預設值為 macos_sdk_version 建構旗標會覆寫此處指定的值。 |
default_tvos_sdk_version
|
字串;nonconfigurable;預設值為 tvos_sdk_version 建構旗標會覆寫此處指定的值。 |
default_visionos_sdk_version
|
字串;nonconfigurable;預設值為 visionos_sdk_version 建構旗標會覆寫此處指定的值。 |
default_watchos_sdk_version
|
字串;nonconfigurable;預設值為 watchos_sdk_version 建構旗標會覆寫此處指定的值。 |
version
|
字串;nonconfigurable;必要 Xcode 版本的官方版本號碼。 |