Aturan
j2objc_library
Lihat 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 sumber Java file ke Objective-C, yang kemudian dapat digunakan sebagai dependensi objc_library dan objc_binary aturan. Informasi mendetail tentang J2ObjC dapat ditemukan di Situs J2ObjC
Flag transpilasi J2ObjC kustom dapat ditentukan menggunakan flag build
--j2objc_translation_flags
di command line.
Perlu diketahui bahwa file yang diterjemahkan yang disertakan dalam target j2objc_library akan dikompilasi menggunakan konfigurasi kompilasi {i>default<i}, konfigurasi yang sama seperti aturan objc_library tanpa opsi kompilasi yang ditentukan dalam atribut.
Selain itu, kode yang dihasilkan dihapus duplikatnya di tingkat target, bukan tingkat sumber. Jika Anda memiliki dua berbagai target Java yang menyertakan file sumber Java yang sama, Anda mungkin melihat error simbol duplikat pada waktu penautan. Cara yang benar untuk menyelesaikan masalah ini adalah dengan memindahkan file sumber Java bersama ke target umum terpisah yang dapat diandalkan.
Argumen
Atribut | |
---|---|
name |
Nama; wajib diisi Nama unik untuk target ini. |
deps
|
Daftar label; default adalah j2objc_library , java_library ,
Target java_import dan java_proto_library yang berisi
File Java yang akan ditranspilasi ke Objective-C.
Semua target Cara kerja terjemahan J2ObjC berbeda-beda tergantung pada jenis sumber Java
file yang termasuk
dalam penutupan transitif. Untuk setiap file sumber .java yang disertakan dalam
Pengguna dapat mengimpor file {i>header<i} yang dihasilkan J2ObjC dalam kode mereka. Jalur impor untuk
file ini adalah jalur relatif akar dari artefak Java asli. Misalnya,
Jika aturan proto_library berada dalam penutupan transitif dari aturan ini, proto J2ObjC juga
dibuat, dikompilasi, dan ditaut-in pada level biner. Untuk proto
|
entry_classes
|
Daftar {i>string<i}; default-nya adalah --j2objc_dead_code_removal
aktif. Class Java harus ditentukan dalam nama kanonis seperti yang ditetapkan oleh
aplikasi Java
Spesifikasi Bahasa.
Ketika flag --j2objc_dead_code_removal ditentukan, daftar class entri
akan dikumpulkan secara transitif dan digunakan sebagai titik masuk untuk melakukan analisis kode yang sudah tidak berfungsi.
Class yang tidak digunakan kemudian akan dihapus dari app bundle ObjC akhir.
|
jre_deps
|
Daftar label; default adalah j2objc_library aturan. Hanya fungsi JRE inti yang ditautkan secara default.
|
objc_import
Lihat 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 pustaka statis yang sudah dikompilasi dalam bentuk
File .a
. API ini juga memungkinkan ekspor header dan resource menggunakan metode
atribut yang didukung oleh objc_library
.
Argumen
Atribut | |
---|---|
name |
Nama; wajib diisi Nama unik untuk target ini. |
deps
|
Daftar label; default adalah |
hdrs
|
Daftar label; default adalah {i>Header<i} ini menjelaskan antarmuka publik untuk {i>library<i} dan akan disediakan untuk disertakan oleh sumber dalam aturan ini atau aturan. Header tidak dimaksudkan untuk disertakan oleh klien library ini harus tercantum dalam atribut srcs. Kumpulan data ini akan dikompilasi secara terpisah dari sumber jika modul diaktifkan. |
alwayslink
|
Boolean; default-nya adalah srcs dan non_arc_srcs , meskipun beberapa yang berisi tidak
simbol yang direferensikan
oleh biner.
Fungsi ini berguna jika kode Anda tidak secara eksplisit dipanggil oleh kode di
biner, misalnya, jika kode Anda mendaftar untuk menerima beberapa callback
yang disediakan oleh beberapa layanan.
|
archives
|
Daftar label; wajib diisi Daftar.a file yang diberikan ke target Objective-C yang
bergantung pada target ini.
|
includes
|
Daftar {i>string<i}; default-nya adalah #include/#import jalur penelusuran untuk ditambahkan ke target ini
dan semua target yang bergantung.
Ini untuk mendukung library pihak ketiga dan open source yang tidak
menentukan seluruh jalur ruang kerja di
Pernyataan #import/#include .
Jalur ditafsirkan relatif terhadap direktori paket, dan
genfile dan root bin (misalnya Tidak seperti COPTS, tanda ini ditambahkan untuk aturan ini dan setiap aturan yang bergantung padanya. (Catatan: bukan aturan yang menjadi dependensinya.) Membuat sangat berhati-hati, karena hal ini dapat menimbulkan jangkauan luas. Jika ragu, tambahkan "-iquote" flag ke COPTS. |
sdk_dylibs
|
Daftar {i>string<i}; default-nya adalah |
sdk_frameworks
|
Daftar {i>string<i}; default-nya adalah Saat menautkan biner Apple tingkat atas, semua framework SDK yang tercantum dalam grafik dependensi transitif tertaut. |
sdk_includes
|
Daftar {i>string<i}; default-nya adalah #include/#import jalur penelusuran untuk ditambahkan ke target ini
dan semua target yang bergantung, di mana setiap jalur berhubungan
$(SDKROOT)/usr/include .
|
textual_hdrs
|
Daftar label; default adalah |
weak_sdk_frameworks
|
Daftar {i>string<i}; default-nya adalah |
objc_library
Lihat 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 ditentukan.
Argumen
Atribut | |
---|---|
name |
Nama; wajib diisi Nama unik untuk target ini. |
deps
|
Daftar label; default adalah |
srcs
|
Daftar label; default adalah |
hdrs
|
Daftar label; default adalah {i>Header<i} ini menjelaskan antarmuka publik untuk {i>library<i} dan akan disediakan untuk disertakan oleh sumber dalam aturan ini atau aturan. Header tidak dimaksudkan untuk disertakan oleh klien library ini harus tercantum dalam atribut srcs. Kumpulan data ini akan dikompilasi secara terpisah dari sumber jika modul diaktifkan. |
alwayslink
|
Boolean; default-nya adalah srcs dan non_arc_srcs , meskipun beberapa yang berisi tidak
simbol yang direferensikan
oleh biner.
Fungsi ini berguna jika kode Anda tidak secara eksplisit dipanggil oleh kode di
biner, misalnya, jika kode Anda mendaftar untuk menerima beberapa callback
yang disediakan oleh beberapa layanan.
|
copts
|
Daftar {i>string<i}; default-nya adalah Perhatikan bahwa untuk project Xcode yang dihasilkan, jalur direktori yang ditentukan menggunakan "-I" tanda di copt diuraikan, diawali dengan "$(WORKSPACE_ROOT)/" jika jalur itu relatif, dan yang ditambahkan ke jalur penelusuran header untuk target Xcode terkait. |
defines
|
Daftar {i>string<i}; default-nya adalah -D tambahan untuk diteruskan ke compiler. Mereka harus dalam
dalam bentuk KEY=VALUE atau KEY saja dan merupakan
diteruskan tidak hanya ke compiler untuk target ini (sebagai copts
tetapi juga untuk semua dependensi objc_ dari target ini.
Tunduk kepada substitusi "Buat variabel" dan
Tokenisasi shell Bourne.
|
enable_modules
|
Boolean; default-nya adalah |
implementation_deps
|
Daftar label; default adalah deps , header dan sertakan jalur library ini (dan semua
dependensi transitif) hanya digunakan untuk kompilasi library ini, bukan library yang
yang bergantung pada {i>database.<i} Library yang ditentukan dengan implementation_deps masih ditautkan
dalam target biner yang
bergantung pada library ini.
|
includes
|
Daftar {i>string<i}; default-nya adalah #include/#import jalur penelusuran untuk ditambahkan ke target ini
dan semua target yang bergantung.
Ini untuk mendukung library pihak ketiga dan open source yang tidak
menentukan seluruh jalur ruang kerja di
Pernyataan #import/#include .
Jalur ditafsirkan relatif terhadap direktori paket, dan
genfile dan root bin (misalnya Tidak seperti COPTS, tanda ini ditambahkan untuk aturan ini dan setiap aturan yang bergantung padanya. (Catatan: bukan aturan yang menjadi dependensinya.) Membuat sangat berhati-hati, karena hal ini dapat menimbulkan jangkauan luas. Jika ragu, tambahkan "-iquote" flag ke COPTS. |
linkopts
|
Daftar {i>string<i}; default-nya adalah |
module_map
|
Label; default adalah |
module_name
|
String; default-nya adalah |
non_arc_srcs
|
Daftar label; default adalah |
pch
|
Label; default adalah |
sdk_dylibs
|
Daftar {i>string<i}; default-nya adalah |
sdk_frameworks
|
Daftar {i>string<i}; default-nya adalah Saat menautkan biner Apple tingkat atas, semua framework SDK yang tercantum dalam grafik dependensi transitif tertaut. |
sdk_includes
|
Daftar {i>string<i}; default-nya adalah #include/#import jalur penelusuran untuk ditambahkan ke target ini
dan semua target yang bergantung, di mana setiap jalur berhubungan
$(SDKROOT)/usr/include .
|
textual_hdrs
|
Daftar label; default adalah |
weak_sdk_frameworks
|
Daftar {i>string<i}; default-nya adalah |
available_xcodes
Lihat 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
dari jarak jauh dan secara lokal.
Hal ini memungkinkan pemilihan versi xcode resmi dari xcode yang tersedia secara kolektif.
Argumen
Atribut | |
---|---|
name |
Nama; wajib diisi Nama unik untuk target ini. |
default
|
Label; tidak dapat dikonfigurasi; wajib diisi Versi xcode default untuk platform ini. |
versions
|
Daftar label; tidak dapat dikonfigurasi; defaultnya adalah |
xcode_config
Lihat sumber aturanxcode_config(name, default, deprecation, distribs, features, licenses, local_versions, remote_versions, tags, testonly, versions, visibility)
Satu target aturan ini dapat direferensikan oleh build --xcode_version_config
untuk menerjemahkan tanda --xcode_version
ke versi xcode resmi yang diterima.
Hal ini memungkinkan pemilihan versi xcode resmi dari sejumlah alias yang terdaftar.
Argumen
Atribut | |
---|---|
name |
Nama; wajib diisi 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. Wajib diisi jika ada
versions sudah disetel. Kolom ini mungkin tidak disetel jika remote_versions atau
local_versions disetel.
|
local_versions
|
Label; tidak dapat dikonfigurasi; defaultnya adalah xcode_version yang tersedia secara lokal.
Keduanya digunakan bersama dengan local_versions untuk memilih atribut yang sama-sama tersedia
. Kolom ini mungkin tidak disetel jika versions disetel.
|
remote_versions
|
Label; tidak dapat dikonfigurasi; defaultnya adalah xcode_version target yang tersedia dari jarak jauh.
Keduanya digunakan bersama dengan remote_versions untuk memilih atribut yang sama-sama tersedia
. Kolom ini mungkin tidak disetel jika versions disetel.
|
versions
|
Daftar label; tidak dapat dikonfigurasi; defaultnya adalah xcode_version target yang mungkin digunakan.
Jika nilai flag build xcode_version cocok dengan salah satu alias
atau nomor versi dari salah satu target xcode_version yang ditentukan, ID pencocokan
target akan digunakan. Kolom ini mungkin tidak disetel jika remote_versions atau
local_versions disetel.
|
xcode_version
Lihat 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 diisi Nama unik untuk target ini. |
default_ios_sdk_version
|
String; tidak dapat dikonfigurasi; default adalah ios_sdk_version akan mengganti nilai yang ditentukan di sini.
|
default_macos_sdk_version
|
String; tidak dapat dikonfigurasi; default adalah macos_sdk_version akan mengganti nilai yang ditentukan di sini.
|
default_tvos_sdk_version
|
String; tidak dapat dikonfigurasi; default adalah tvos_sdk_version akan mengganti nilai yang ditentukan di sini.
|
default_visionos_sdk_version
|
String; tidak dapat dikonfigurasi; default adalah visionos_sdk_version akan mengganti nilai yang ditentukan di sini.
|
default_watchos_sdk_version
|
String; tidak dapat dikonfigurasi; default adalah watchos_sdk_version akan mengganti nilai yang ditentukan di sini.
|
version
|
String; tidak dapat dikonfigurasi; wajib diisi Nomor versi resmi dari sebuah versi Xcode. |