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 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
pada command line.
Perlu diperhatikan bahwa file terjemahan yang disertakan dalam target j2objc_library akan dikompilasi menggunakan konfigurasi kompilasi default, konfigurasi yang sama seperti sumber aturan objc_library tanpa opsi kompilasi yang ditentukan dalam atribut.
Selain itu, kode yang dihasilkan dihapus duplikatnya di tingkat target, bukan tingkat sumber. Jika memiliki dua target Java berbeda 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; defaultnya adalah j2objc_library , java_library , java_import , dan java_proto_library yang berisi file Java yang akan ditranspilasi ke Objective-C.
Semua target Cara kerja terjemahan J2ObjC berbeda-beda, bergantung pada jenis file sumber Java sumber
yang disertakan 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 root-relatif dari artefak Java asli. Misalnya,
Jika aturan proto_library berada dalam penutupan transitif aturan ini, proto J2ObjC juga
akan dibuat, dikompilasi, dan ditautkan pada level biner. Untuk |
entry_classes
|
Daftar string; defaultnya adalah --j2objc_dead_code_removal
aktif. Class Java harus ditetapkan dalam nama kanonis seperti yang ditetapkan oleh Spesifikasi Bahasa Java.
Saat tanda --j2objc_dead_code_removal ditentukan, daftar class entri
akan dikumpulkan secara transitif dan digunakan sebagai titik entri untuk melakukan analisis kode yang mati.
Class yang tidak digunakan kemudian akan dihapus dari app bundle ObjC akhir.
|
jre_deps
|
Daftar label; defaultnya adalah j2objc_library ini. 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 library statis yang sudah dikompilasi dalam bentuk
file .a
. API ini juga memungkinkan ekspor header dan resource menggunakan atribut yang sama
yang didukung oleh objc_library
.
Argumen
Atribut | |
---|---|
name |
Nama; wajib diisi Nama unik untuk target ini. |
deps
|
Daftar label; defaultnya adalah |
hdrs
|
Daftar label; defaultnya adalah Header ini mendeskripsikan antarmuka publik untuk library dan akan tersedia untuk disertakan oleh sumber dalam aturan ini atau aturan yang bergantung. Header yang tidak dimaksudkan untuk disertakan oleh klien library ini harus dicantumkan dalam atribut srcs. Kumpulan data ini akan dikompilasi secara terpisah dari sumber jika modul diaktifkan. |
alwayslink
|
Boolean; defaultnya adalah srcs dan non_arc_srcs , meskipun beberapa paket tidak berisi
simbol yang dirujuk oleh biner.
Hal ini berguna jika kode Anda tidak secara eksplisit dipanggil oleh kode dalam biner, misalnya, jika kode Anda didaftarkan 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; defaultnya adalah #include/#import jalur penelusuran yang akan ditambahkan ke target ini
dan semua target yang bergantung.
Hal ini untuk mendukung library pihak ketiga dan library open source yang tidak
menetapkan seluruh jalur ruang kerja dalam
pernyataan #import/#include .
Jalur ditafsirkan secara relatif terhadap direktori paket, dan
genfile serta root bin (misalnya Tidak seperti COPTS, flag ini ditambahkan untuk aturan ini dan setiap aturan yang bergantung padanya. (Catatan: bukan aturan yang menjadi dependensinya.) Hati-hati, karena efeknya mungkin sangat luas. Jika ragu, tambahkan tanda "-iquote" ke COPTS. |
sdk_dylibs
|
Daftar string; defaultnya adalah |
sdk_frameworks
|
Daftar string; defaultnya adalah Saat menautkan biner Apple tingkat atas, semua framework SDK yang tercantum dalam grafik dependensi transitif biner tersebut akan ditautkan. |
sdk_includes
|
Daftar string; defaultnya adalah #include/#import jalur penelusuran yang akan ditambahkan ke target ini
dan semua target bergantung, dengan setiap jalur berhubungan dengan
$(SDKROOT)/usr/include .
|
textual_hdrs
|
Daftar label; defaultnya adalah |
weak_sdk_frameworks
|
Daftar string; defaultnya 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; defaultnya adalah |
srcs
|
Daftar label; defaultnya adalah |
hdrs
|
Daftar label; defaultnya adalah Header ini mendeskripsikan antarmuka publik untuk library dan akan tersedia untuk disertakan oleh sumber dalam aturan ini atau aturan yang bergantung. Header yang tidak dimaksudkan untuk disertakan oleh klien library ini harus dicantumkan dalam atribut srcs. Kumpulan data ini akan dikompilasi secara terpisah dari sumber jika modul diaktifkan. |
alwayslink
|
Boolean; defaultnya adalah srcs dan non_arc_srcs , meskipun beberapa paket tidak berisi
simbol yang dirujuk oleh biner.
Hal ini berguna jika kode Anda tidak secara eksplisit dipanggil oleh kode dalam biner, misalnya, jika kode Anda didaftarkan untuk menerima beberapa callback yang disediakan oleh beberapa layanan.
|
copts
|
Daftar string; defaultnya adalah Perhatikan bahwa untuk project Xcode yang dihasilkan, jalur direktori yang ditentukan menggunakan flag "-I" di copt akan diurai, ditambah dengan "$(WORKSPACE_ROOT)/" jika jalur tersebut merupakan jalur relatif, dan ditambahkan ke jalur penelusuran header untuk target Xcode terkait. |
defines
|
Daftar string; defaultnya adalah -D tambahan untuk diteruskan ke compiler. Nilai tersebut harus dalam bentuk KEY=VALUE atau hanya KEY dan diteruskan tidak hanya ke compiler untuk target ini (sebagaimana copts ), tetapi juga ke semua dependensi objc_ dari target ini.
Tunduk pada substitusi "Buat variabel" dan
tokenisasi shell Bourne.
|
enable_modules
|
Boolean; defaultnya adalah |
implementation_deps
|
Daftar label; defaultnya adalah deps , header dan jalur include library ini (beserta semua
dependensi transitifnya) hanya digunakan untuk kompilasi library ini, bukan library yang
bergantung padanya. Library yang ditentukan dengan implementation_deps masih ditautkan dalam target biner yang bergantung pada library ini.
|
includes
|
Daftar string; defaultnya adalah #include/#import jalur penelusuran yang akan ditambahkan ke target ini
dan semua target yang bergantung.
Hal ini untuk mendukung library pihak ketiga dan library open source yang tidak
menetapkan seluruh jalur ruang kerja dalam
pernyataan #import/#include .
Jalur ditafsirkan secara relatif terhadap direktori paket, dan
genfile serta root bin (misalnya Tidak seperti COPTS, flag ini ditambahkan untuk aturan ini dan setiap aturan yang bergantung padanya. (Catatan: bukan aturan yang menjadi dependensinya.) Hati-hati, karena efeknya mungkin sangat luas. Jika ragu, tambahkan tanda "-iquote" ke COPTS. |
linkopts
|
Daftar string; defaultnya adalah |
module_map
|
Label; defaultnya adalah |
module_name
|
String; defaultnya adalah |
non_arc_srcs
|
Daftar label; defaultnya adalah |
pch
|
Label; defaultnya adalah |
sdk_dylibs
|
Daftar string; defaultnya adalah |
sdk_frameworks
|
Daftar string; defaultnya adalah Saat menautkan biner Apple tingkat atas, semua framework SDK yang tercantum dalam grafik dependensi transitif biner tersebut akan ditautkan. |
sdk_includes
|
Daftar string; defaultnya adalah #include/#import jalur penelusuran yang akan ditambahkan ke target ini
dan semua target bergantung, dengan setiap jalur berhubungan dengan
$(SDKROOT)/usr/include .
|
textual_hdrs
|
Daftar label; defaultnya adalah |
weak_sdk_frameworks
|
Daftar string; defaultnya 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 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 dari 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 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
flag build xcode_version tidak ditentukan. Hal ini diperlukan jika
versions ditetapkan. Kolom ini tidak dapat 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 versi 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 versi 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 tanda build xcode_version cocok dengan salah satu alias atau nomor versi dari target xcode_version yang ditentukan, target yang cocok akan digunakan. Kolom ini tidak dapat 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; defaultnya adalah ios_sdk_version akan mengganti nilai yang ditentukan di sini.
|
default_macos_sdk_version
|
String; tidak dapat dikonfigurasi; defaultnya adalah macos_sdk_version akan mengganti nilai yang ditentukan di sini.
|
default_tvos_sdk_version
|
String; tidak dapat dikonfigurasi; defaultnya adalah tvos_sdk_version akan mengganti nilai yang ditentukan di sini.
|
default_visionos_sdk_version
|
String; tidak dapat dikonfigurasi; defaultnya adalah visionos_sdk_version akan mengganti nilai yang ditentukan di sini.
|
default_watchos_sdk_version
|
String; tidak dapat dikonfigurasi; defaultnya adalah watchos_sdk_version akan mengganti nilai yang ditentukan di sini.
|
version
|
String; tidak dapat dikonfigurasi; wajib Nomor versi resmi dari sebuah versi Xcode. |