Kurallar
j2objc_library
j2objc_library(name, deps, compatible_with, deprecation, distribs, entry_classes, features, jre_deps, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)
Bu kural, Java kaynak dosyalarını Objective-C'ye çevirmek için J2ObjC yöntemini kullanır. Daha sonra bu dosya, objc_library ve objc_binary kurallarının bağımlıları olarak kullanılabilir. J2ObjC'nin kendisi hakkında ayrıntılı bilgiyi J2ObjC sitesinde bulabilirsiniz.
Özel J2ObjC transpiasyon işaretleri, komut satırında derleme işareti --j2objc_translation_flags
kullanılarak belirtilebilir.
j2objc_library hedefinde yer alan çevrilmiş dosyaların, varsayılan derleme yapılandırması kullanılarak derleneceğini lütfen unutmayın. Bu yapılandırma, özniteliklerde belirtilen derleme seçeneği belirtilmemiş bir objc_library kuralının kaynaklarıyla aynı yapılandırmadır.
Ayrıca, oluşturulan kod kaynak düzeyinde değil hedef düzeyinde tekilleştirilir. Aynı Java kaynak dosyalarını içeren iki farklı Java hedefiniz varsa bağlantı anında yinelenen bir simge hatası görebilirsiniz. Bu sorunu çözmenin doğru yolu, paylaşılan Java kaynak dosyalarını güvenilebilecek ayrı bir ortak hedefe taşımaktır.
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. |
deps
|
j2objc_library , java_library , java_import ve java_proto_library hedeflerinin listesi.
J2ObjC çevirisi, geçişli kapatmada yer alan kaynak Java kaynak dosyalarının türüne bağlı olarak farklı şekilde çalışır. Kullanıcılar, J2ObjC tarafından oluşturulan başlık dosyalarını kodlarına aktarabilir. Bu dosyaların içe aktarma yolları, orijinal Java yapılarının köke göreli yoludur. Örneğin,
proto_library kuralları, bu kuralın geçişli olarak kapatılma sürecindeyse J2ObjC proto'ları da oluşturulur, derlenir ve ikili düzeyde bağlanır. |
entry_classes
|
--j2objc_dead_code_removal
işareti açıksa bu özellik gereklidir. Java sınıfları, Java Dil Belirtimi tarafından tanımlanan standart adlarıyla belirtilmelidir.
--j2objc_dead_code_removal işareti belirtildiğinde, giriş sınıflarının listesi geçişli olarak toplanır ve ölü kod analizi yapmak için giriş noktaları olarak kullanılır.
Kullanılmayan sınıflar, son ObjC uygulama paketinden kaldırılır.
|
jre_deps
|
j2objc_library kuralıyla çevrilmiş tüm Java kodlarının gerektirdiği ek JRE emülasyon kitaplıklarının listesi. Yalnızca temel JRE işlevleri varsayılan olarak bağlantılıdır.
|
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)
Bu kural, .a
dosyası biçiminde önceden derlenmiş statik bir kitaplığı içerir. Ayrıca, objc_library
tarafından desteklenen aynı özellikleri kullanarak başlıkları ve kaynakları dışa aktarmaya da olanak tanır.
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. |
hdrs
|
Bu üst bilgiler, kitaplığın herkese açık arayüzünü açıklar ve bu kuraldaki veya bağımlı kurallardaki kaynaklar tarafından eklenmek üzere kullanıma sunulur. Bu kitaplığın bir istemcisi tarafından eklenmemesi amaçlanan başlıklar, srcs özelliğinde listelenmelidir. Modüller etkinse bunlar kaynaktan ayrı olarak derlenir. |
alwayslink
|
srcs ve non_arc_srcs içinde listelenen dosyaların tüm nesne dosyalarına bağlantı oluşturur.
Bu yöntem, kodunuz ikili programdaki kod tarafından açıkça çağrılmıyorsa (ör. kodunuz bir hizmet tarafından sağlanan geri çağırmayı almak için kaydolursa) faydalıdır.
|
archives
|
.a dosyalarının listesi.
|
includes
|
#include/#import arama yollarının ve tüm bağlı hedeflere ekleneceklerin listesi.
Bu, #import/#include ifadelerinde Workspace yolunun tamamını belirtmeyen üçüncü taraf ve açık kaynaklı kitaplıkları desteklemek içindir.
Yollar, paket dizinine göre yorumlanır ve gerçek istemci köküne ek olarak genfiles ve bin root'lar (ör. COPTS'dan farklı olarak bu işaretler, bu kural ve buna bağlı her kural için eklenir. (Not: Bağlı olduğu kurallar değildir.) Bu durum geniş kapsamlı etkilere sahip olabileceğinden çok dikkatli olun. Şüpheye düştüğünüzde, bunun yerine COPTS öğesine "-iquote" işaretlerini ekleyin. |
sdk_dylibs
|
|
sdk_frameworks
|
Üst düzey bir Apple ikili programı bağlanırken bu ikili programın geçişli bağımlılık grafiğinde listelenen tüm SDK çerçeveleri bağlanır. |
sdk_includes
|
#include/#import arama yollarının ve her bir yolun $(SDKROOT)/usr/include ile göreli olduğu tüm bağlı hedeflerin listesi.
|
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, runtime_deps, sdk_dylibs, sdk_frameworks, sdk_includes, tags, target_compatible_with, testonly, textual_hdrs, toolchains, visibility, weak_sdk_frameworks)
Bu kural, belirtilen Objective-C kaynak dosyalarından statik bir kitaplık oluşturur.
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. |
deps
|
|
srcs
|
|
hdrs
|
Bu üst bilgiler, kitaplığın herkese açık arayüzünü açıklar ve bu kuraldaki veya bağımlı kurallardaki kaynaklar tarafından eklenmek üzere kullanıma sunulur. Bu kitaplığın bir istemcisi tarafından eklenmemesi amaçlanan başlıklar, srcs özelliğinde listelenmelidir. Modüller etkinse bunlar kaynaktan ayrı olarak derlenir. |
alwayslink
|
srcs ve non_arc_srcs içinde listelenen dosyaların tüm nesne dosyalarına bağlantı oluşturur.
Bu yöntem, kodunuz ikili programdaki kod tarafından açıkça çağrılmıyorsa (ör. kodunuz bir hizmet tarafından sağlanan geri çağırmayı almak için kaydolursa) faydalıdır.
|
copts
|
Oluşturulan Xcode projesi için copt'larda "-I" işaretleri kullanılarak belirtilen dizin yollarının ayrıştırıldığını, göreli yollarsa başına "$(WORKSPACE_ROOT)/" ile eklendiğini ve ilişkili Xcode hedefi için başlık arama yollarına eklendiğini unutmayın. |
defines
|
-D işaretleri. Bunlar, KEY=VALUE veya basitçe KEY biçiminde olmalıdır ve yalnızca bu hedef için derleyiciye (copts olduğu gibi) değil, aynı zamanda bu hedefin tüm objc_ bağımlılarına iletilir.
"Değişken oluşturma" değişikliğine ve Bourne kabuğu belirtkelemeye tabidir.
|
enable_modules
|
|
includes
|
#include/#import arama yollarının ve tüm bağlı hedeflere ekleneceklerin listesi.
Bu, #import/#include ifadelerinde Workspace yolunun tamamını belirtmeyen üçüncü taraf ve açık kaynaklı kitaplıkları desteklemek içindir.
Yollar, paket dizinine göre yorumlanır ve gerçek istemci köküne ek olarak genfiles ve bin root'lar (ör. COPTS'dan farklı olarak bu işaretler, bu kural ve buna bağlı her kural için eklenir. (Not: Bağlı olduğu kurallar değildir.) Bu durum geniş kapsamlı etkilere sahip olabileceğinden çok dikkatli olun. Şüpheye düştüğünüzde, bunun yerine COPTS öğesine "-iquote" işaretlerini ekleyin. |
linkopts
|
|
module_map
|
|
module_name
|
|
non_arc_srcs
|
|
pch
|
|
runtime_deps
|
|
sdk_dylibs
|
|
sdk_frameworks
|
Üst düzey bir Apple ikili programı bağlanırken bu ikili programın geçişli bağımlılık grafiğinde listelenen tüm SDK çerçeveleri bağlanır. |
sdk_includes
|
#include/#import arama yollarının ve her bir yolun $(SDKROOT)/usr/include ile göreli olduğu tüm bağlı hedeflerin listesi.
|
textual_hdrs
|
|
weak_sdk_frameworks
|
|
available_xcodes
available_xcodes(name, default, deprecation, distribs, features, licenses, tags, testonly, versions, visibility)
Uzaktan ve yerel olarak kullanılabilen xcode sürümlerini belirtmek için bir xcode_config
kuralı örneği bu kuralın iki hedefine güvenebilir.
Bu, toplu olarak kullanılabilir xcode'lardan resmi bir xcode sürümünün seçilmesine olanak tanır.
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. |
default
|
|
versions
|
|
xcode_config
xcode_config(name, default, deprecation, distribs, features, licenses, local_versions, remote_versions, tags, testonly, versions, visibility)
--xcode_version
işaretini kabul edilen resmi bir xcode sürümüne çevirmek için --xcode_version_config
derleme işareti, bu kuralın tek bir hedefine referans verebilir.
Bu, bir dizi kayıtlı takma addan resmi bir xcode sürümünün seçilmesine olanak tanır.
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. |
default
|
xcode_version derleme işareti belirtilmezse sağlanan xcode_version hedefi tarafından belirtilen sürüm kullanılır. versions ayarlanmışsa bu gereklidir. remote_versions veya local_versions ayarlandıysa bu ayar belirtilemez.
|
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)
Söz konusu xcode sürümü için kabul edilebilir takma adlarla birlikte tek bir resmi xcode sürümünü temsil eder.
xcode_config
kuralına bakın.
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. |
default_ios_sdk_version
|
ios_sdk_version derleme işareti, burada belirtilen değeri geçersiz kılar.
|
default_macos_sdk_version
|
macos_sdk_version derleme işareti, burada belirtilen değeri geçersiz kılar.
|
default_tvos_sdk_version
|
tvos_sdk_version derleme işareti, burada belirtilen değeri geçersiz kılar.
|
default_watchos_sdk_version
|
watchos_sdk_version derleme işareti, burada belirtilen değeri geçersiz kılar.
|
version
|
|