規則
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 目標清單。所有可透過 J2ObjC 翻譯的運作方式取決於轉換關閉版本中包含的來源 Java 來源檔案類型。針對 使用者可以在程式碼中匯入 J2ObjC 產生的標頭檔案。這些檔案的匯入路徑是原始 Java 構件的根相對路徑。舉例來說,
如果 proto_library 規則位於這項規則的間接性範圍內,則系統會產生二進制層級的 J2ObjC protos,並進行編譯和連結作業。針對 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, 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 |
此目標的專屬名稱。 |
hdrs
|
這些標頭會說明程式庫的公開介面,並會在這項規則或相依規則中納入來源。這個程式庫不應該加入的標頭,應改為列在 srcs 屬性中。 如果啟用模組,系統會分開編譯這些來源和來源。 |
alwayslink
|
srcs 及 non_arc_srcs 如果您的程式碼並未由二進位檔中的程式碼明確呼叫 (例如您的程式碼註冊是為了接收某些服務提供的部分回呼),這個方法就很實用。 |
archives
|
.a 檔案清單。
|
includes
|
#include/#import 搜尋路徑清單。這是為了支援在 #import/#include 陳述式中指定整個工作區路徑的第三方和開放原始碼程式庫。
系統會根據套件目錄解讀路徑,除了實際用戶端根目錄以外,還會包含 genfile 和 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, 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 shell 權杖化。
|
enable_modules
|
|
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
|
|
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_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_watchos_sdk_version
|
watchos_sdk_version 建構標記會覆寫此處指定的值。
|
version
|
|