Aturan
j2objc_library
Melihat sumber aturanj2objc_library(name, deps, compatible_with, deprecation, distribs, entry_classes, features, jre_deps, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)
Aturan ini menggunakan J2ObjC untuk menerjemahkan file sumber Java ke Objective-C, yang kemudian dapat digunakan sebagai dependensi aturan objc_library dan objc_binary. Informasi mendetail tentang J2ObjC itu sendiri dapat ditemukan di situs J2ObjC
Flag transpilasi J2ObjC kustom dapat ditentukan menggunakan flag build
--j2objc_translation_flags
di command line.
Perhatikan bahwa file terjemahan yang disertakan dalam target j2objc_library akan dikompilasi menggunakan konfigurasi kompilasi default, konfigurasi yang sama dengan sumber aturan objc_library tanpa opsi kompilasi yang ditentukan dalam atribut.
Selain itu, kode yang dihasilkan akan dihapus duplikatnya di tingkat target, bukan di tingkat sumber. Jika memiliki dua target Java yang berbeda yang menyertakan file sumber Java yang sama, Anda mungkin melihat error simbol duplikat pada waktu penautan. Cara yang benar untuk mengatasi masalah ini adalah dengan memindahkan file sumber Java bersama ke target umum terpisah yang dapat diandalkan.
Argumen
Atribut | |
---|---|
name |
Nama; wajib Nama unik untuk target ini. |
deps
|
Daftar label; default-nya adalah j2objc_library , java_library ,
java_import , dan java_proto_library yang berisi
file Java yang akan ditranspile ke Objective-C.
Semua target Terjemahan J2ObjC berfungsi secara berbeda bergantung pada jenis file sumber Java
yang disertakan dalam penutupan transitif. Untuk setiap file sumber .java yang disertakan dalam
Pengguna dapat mengimpor file header yang dibuat J2ObjC dalam kode mereka. Jalur impor untuk
file ini adalah jalur relatif root dari artefak Java asli. Misalnya,
Jika aturan proto_library berada dalam penutupan transitif aturan ini, proto J2ObjC juga akan
dihasilkan, dikompilasi, dan ditautkan di tingkat biner. Untuk proto
|
entry_classes
|
Daftar string; default-nya adalah --j2objc_dead_code_removal
aktif. Class Java harus ditentukan dalam nama kanonisnya sebagaimana ditentukan oleh
Spesifikasi Bahasa
Java.
Jika flag --j2objc_dead_code_removal ditentukan, daftar class entri akan dikumpulkan secara transitif dan digunakan sebagai titik entri untuk melakukan analisis kode mati.
Class yang tidak digunakan kemudian akan dihapus dari app bundle ObjC akhir.
|
jre_deps
|
Daftar label; default-nya adalah j2objc_library ini. Hanya fungsi JRE inti yang ditautkan secara default.
|
objc_import
Melihat sumber aturanobjc_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)
Aturan ini mengenkapsulasi library statis yang telah dikompilasi dalam bentuk
file .a
. Hal ini juga memungkinkan ekspor header dan resource menggunakan atribut
yang sama yang didukung oleh objc_library
.
Argumen
Atribut | |
---|---|
name |
Nama; wajib Nama unik untuk target ini. |
deps
|
Daftar label; default-nya adalah |
hdrs
|
Daftar label; default-nya adalah Header ini menjelaskan antarmuka publik untuk library dan akan tersedia untuk disertakan oleh sumber dalam aturan ini atau dalam aturan dependen. Header yang tidak dimaksudkan untuk disertakan oleh klien library ini harus dicantumkan dalam atribut srcs. Ini akan dikompilasi secara terpisah dari sumber jika modul diaktifkan. |
alwayslink
|
Boolean; default-nya adalah srcs dan non_arc_srcs , meskipun beberapa tidak berisi
simbol yang dirujuk oleh biner.
Hal ini berguna jika kode Anda tidak dipanggil secara eksplisit oleh kode dalam
biner, misalnya, jika kode Anda terdaftar untuk menerima beberapa callback
yang disediakan oleh beberapa layanan.
|
archives
|
Daftar label; wajib diisi Daftar file.a yang diberikan ke target Objective-C yang
bergantung pada target ini.
|
includes
|
Daftar string; default-nya adalah #include/#import yang akan ditambahkan ke target ini
dan semua target dependen.
Hal ini untuk mendukung library pihak ketiga dan open source yang tidak
menentukan seluruh jalur ruang kerja dalam
pernyataan #import/#include -nya.
Jalur ditafsirkan secara relatif terhadap direktori paket, dan genfiles dan root bin (misalnya, Tidak seperti COPTS, flag ini ditambahkan untuk aturan ini dan setiap aturan yang bergantung padanya. (Catatan: bukan aturan yang menjadi dependensinya!) Berhati-hatilah, karena hal ini dapat berdampak luas. Jika ragu, tambahkan flag "-iquote" ke COPTS. |
sdk_dylibs
|
Daftar string; default-nya adalah |
sdk_frameworks
|
Daftar string; default-nya adalah Saat menautkan biner Apple level teratas, semua framework SDK yang tercantum dalam grafik dependensi transitif biner tersebut akan ditautkan. |
sdk_includes
|
Daftar string; default-nya adalah #include/#import yang akan ditambahkan ke target ini
dan semua target dependen, dengan setiap jalur relatif terhadap
$(SDKROOT)/usr/include .
|
textual_hdrs
|
Daftar label; default-nya adalah |
weak_sdk_frameworks
|
Daftar string; default-nya adalah |
objc_library
Melihat sumber aturanobjc_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)
Aturan ini menghasilkan library statis dari file sumber Objective-C yang diberikan.
Argumen
Atribut | |
---|---|
name |
Nama; wajib Nama unik untuk target ini. |
deps
|
Daftar label; default-nya adalah |
srcs
|
Daftar label; default-nya adalah |
hdrs
|
Daftar label; default-nya adalah Header ini menjelaskan antarmuka publik untuk library dan akan tersedia untuk disertakan oleh sumber dalam aturan ini atau dalam aturan dependen. Header yang tidak dimaksudkan untuk disertakan oleh klien library ini harus dicantumkan dalam atribut srcs. Ini akan dikompilasi secara terpisah dari sumber jika modul diaktifkan. |
alwayslink
|
Boolean; default-nya adalah srcs dan non_arc_srcs , meskipun beberapa tidak berisi
simbol yang dirujuk oleh biner.
Hal ini berguna jika kode Anda tidak dipanggil secara eksplisit oleh kode dalam
biner, misalnya, jika kode Anda terdaftar untuk menerima beberapa callback
yang disediakan oleh beberapa layanan.
|
copts
|
Daftar string; default-nya adalah Perhatikan bahwa untuk project Xcode yang dihasilkan, jalur direktori yang ditentukan menggunakan flag "-I" di copts akan diuraikan, diawali dengan "$(WORKSPACE_ROOT)/" jika merupakan jalur relatif, dan ditambahkan ke jalur penelusuran header untuk target Xcode terkait. |
defines
|
Daftar string; default-nya adalah -D tambahan yang akan diteruskan ke compiler. Fungsi ini harus dalam
bentuk KEY=VALUE atau hanya KEY dan
diteruskan tidak hanya ke compiler untuk target ini (seperti copts
), tetapi juga ke semua dependen objc_ dari target ini.
Tunduk pada penggantian "Make variable" dan
tokenisasi shell Bourne.
|
enable_modules
|
Boolean; default-nya adalah |
implementation_deps
|
Daftar label; default-nya adalah deps , header dan jalur penyertaan library ini (dan semua
dependensi transitifnya) hanya digunakan untuk kompilasi library ini, dan bukan library yang
bergantung padanya. Library yang ditentukan dengan implementation_deps masih ditautkan
dalam target biner yang bergantung pada library ini.
|
includes
|
Daftar string; default-nya adalah #include/#import yang akan ditambahkan ke target ini
dan semua target dependen.
Hal ini untuk mendukung library pihak ketiga dan open source yang tidak
menentukan seluruh jalur ruang kerja dalam
pernyataan #import/#include -nya.
Jalur ditafsirkan secara relatif terhadap direktori paket, dan genfiles dan root bin (misalnya, Tidak seperti COPTS, flag ini ditambahkan untuk aturan ini dan setiap aturan yang bergantung padanya. (Catatan: bukan aturan yang menjadi dependensinya!) Berhati-hatilah, karena hal ini dapat berdampak luas. Jika ragu, tambahkan flag "-iquote" ke COPTS. |
linkopts
|
Daftar string; default-nya adalah |
module_map
|
Label; default-nya adalah |
module_name
|
String; default-nya adalah |
non_arc_srcs
|
Daftar label; default-nya adalah |
pch
|
Label; default-nya adalah |
sdk_dylibs
|
Daftar string; default-nya adalah |
sdk_frameworks
|
Daftar string; default-nya adalah Saat menautkan biner Apple level teratas, semua framework SDK yang tercantum dalam grafik dependensi transitif biner tersebut akan ditautkan. |
sdk_includes
|
Daftar string; default-nya adalah #include/#import yang akan ditambahkan ke target ini
dan semua target dependen, dengan setiap jalur relatif terhadap
$(SDKROOT)/usr/include .
|
textual_hdrs
|
Daftar label; default-nya adalah |
weak_sdk_frameworks
|
Daftar string; default-nya adalah |
available_xcodes
Melihat sumber aturanavailable_xcodes(name, default, deprecation, distribs, features, licenses, tags, testonly, versions, visibility)
Dua target aturan ini dapat diandalkan oleh instance aturan xcode_config
untuk
menunjukkan versi xcode yang tersedia secara jarak jauh dan lokal.
Hal ini memungkinkan pemilihan versi xcode resmi dari xcode yang tersedia secara kolektif.
Argumen
Atribut | |
---|---|
name |
Nama; wajib Nama unik untuk target ini. |
default
|
Label; tidak dapat dikonfigurasi; wajib Versi xcode default untuk platform ini. |
versions
|
Daftar label; tidak dapat dikonfigurasi; default-nya adalah |
xcode_config
Melihat sumber aturanxcode_config(name, default, deprecation, distribs, features, licenses, local_versions, remote_versions, tags, testonly, versions, visibility)
Satu target aturan ini dapat direferensikan oleh flag build
--xcode_version_config
untuk menerjemahkan flag --xcode_version
menjadi versi xcode resmi yang diterima.
Hal ini memungkinkan pemilihan versi xcode resmi dari sejumlah alias terdaftar.
Argumen
Atribut | |
---|---|
name |
Nama; wajib Nama unik untuk target ini. |
default
|
Label; tidak dapat dikonfigurasi; defaultnya adalah xcode_version yang disediakan akan digunakan jika
tidak ada flag build xcode_version yang ditentukan. Hal ini diperlukan jika ada
versions yang ditetapkan. Ini mungkin tidak ditetapkan jika remote_versions atau
local_versions ditetapkan.
|
local_versions
|
Label; tidak dapat dikonfigurasi; defaultnya adalah xcode_version yang tersedia secara lokal.
Ini digunakan bersama dengan local_versions untuk memilih versi yang tersedia
secara bersama. Nilai ini mungkin tidak ditetapkan jika versions ditetapkan.
|
remote_versions
|
Label; tidak dapat dikonfigurasi; defaultnya adalah xcode_version yang tersedia dari jarak jauh.
Ini digunakan bersama dengan remote_versions untuk memilih versi yang tersedia
secara bersama. Nilai ini mungkin tidak ditetapkan jika versions ditetapkan.
|
versions
|
Daftar label; tidak dapat dikonfigurasi; default-nya adalah xcode_version yang diterima dan dapat digunakan.
Jika nilai flag build xcode_version cocok dengan salah satu alias
atau nomor versi target xcode_version yang diberikan, target
yang cocok akan digunakan. Ini mungkin tidak ditetapkan jika remote_versions atau
local_versions ditetapkan.
|
xcode_version
Melihat sumber aturanxcode_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)
Mewakili satu versi xcode resmi dengan alias yang dapat diterima untuk versi xcode tersebut.
Lihat aturan xcode_config
.
Argumen
Atribut | |
---|---|
name |
Nama; wajib Nama unik untuk target ini. |
default_ios_sdk_version
|
String; tidak dapat dikonfigurasi; default-nya adalah ios_sdk_version akan mengganti nilai yang ditentukan di sini.
|
default_macos_sdk_version
|
String; tidak dapat dikonfigurasi; default-nya adalah macos_sdk_version akan mengganti nilai yang ditentukan di sini.
|
default_tvos_sdk_version
|
String; tidak dapat dikonfigurasi; default-nya adalah tvos_sdk_version akan mengganti nilai yang ditentukan di sini.
|
default_visionos_sdk_version
|
String; tidak dapat dikonfigurasi; default-nya adalah visionos_sdk_version akan mengganti nilai yang ditentukan di sini.
|
default_watchos_sdk_version
|
String; tidak dapat dikonfigurasi; default-nya adalah watchos_sdk_version akan mengganti nilai yang ditentukan di sini.
|
version
|
String; tidak dapat dikonfigurasi; wajib Nomor versi resmi versi Xcode. |