Objective-C Kuralları

. Sorun bildir Kaynağı göster Gece · 7,3 · 7,2 · 7,1 · 7,0 · 6,5

Kurallar

objc_import

Kural kaynağını görüntüleme
objc_import(name, deps, hdrs, alwayslink, archives, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, includes, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, tags, target_compatible_with, testonly, textual_hdrs, toolchains, visibility, weak_sdk_frameworks)

Bu kural, önceden derlenmiş statik bir kitaplığı .a dosyası biçiminde kapsar. Ayrıca, objc_library tarafından desteklenen aynı özellikleri kullanarak üstbilgilerin ve kaynakların dışa aktarılmasına da olanak tanır.

Bağımsız değişkenler

Özellikler
name

Ad; zorunlu

Bu hedef için benzersiz bir ad.

deps

Etiket listesi; varsayılan değer []

Bu hedefin bağımlı olduğu hedeflerin listesi.
hdrs

Etiketler listesi; varsayılan değer []'dir.

Yayınlanan C, C++, Objective-C ve Objective-C++ başlık dosyalarının listesi tarafından bağımlı kurallardaki kaynaklar tarafından dahil edilecek.

Bu başlıklar kütüphanenin herkese açık arayüzünü tanımlar ve bu kuraldaki kaynaklar tarafından veya bağımlı kurallar. Bu kitaplığın istemcisi tarafından dahil edilmemesi amaçlanan üstbilgiler, bunun yerine srcs özelliğinde listelenmelidir.

Modüller etkinse bunlar kaynaktan ayrı olarak derlenir.

Boole; varsayılan değer False

1 ise (doğrudan veya dolaylı olarak) buna bağımlı herhangi bir paket veya ikili program kitaplığının, listelenen dosyalar için tüm nesne dosyalarına Bazılarında hiç içerik bulunmasa bile srcs ve non_arc_srcs iki simgeli dosya biçimi tarafından başvurulmuştur. Bu, kodunuz yalnızca dil tercihinde kod tarafından ikili program, ör. kodunuz bir geri çağırma işlemi almak için kaydedilirse bir hizmet tarafından sağlanır.
archives

Etiket listesi; zorunlu

Objective-C hedeflerine sağlanan .a dosyalarının listesi bu hedefe bağlıdır.
includes

Dize listesi; varsayılan değer []

Bu hedefe ve tüm bağlı hedeflere eklenecek #include/#import arama yollarının listesi. Bu, #import/#include beyanlarında çalışma alanı yolunun tamamını belirtmeyen üçüncü taraf ve açık kaynak kitaplıkları desteklemek içindir.

Yollar, paket dizine göre yorumlanır ve gerçek istemci köküne ek olarak genfiles ve bin kökleri (ör. blaze-genfiles/pkg/includedir ve blaze-out/pkg/includedir) dahil edilir.

COPTS'tan farklı olarak bu işaretler bu kural ve bu kurala bağlı her kural için eklenir. (Not: Bu kuralların bağlı olduğu kurallar değildir.) Bunun geniş kapsamlı etkileri olabileceğinden çok dikkatli olun. Şüpheye düştüğünüz durumlarda COPTS alanına "-iquote" işaretleri ekleyin.

sdk_dylibs

Dize listesi; varsayılan değer []'tir.

Bağlantı kurulacak SDK .dylib kitaplıklarının adları. Örneğin, "libz" veya "libarchive". "libc++" ikili programda C++ veya Bağımlılık ağacındaki Objective-C++ kaynakları. Bir ikili programı bağlarken ikili programın geçişli bağımlılık grafiğinde adı geçen tüm kitaplıklar kullanılır.
sdk_frameworks

Dize listesi; varsayılan değer []

Bağlanacak SDK çerçevelerinin adları (ör. "AddressBook", "QuartzCore").

Üst düzey bir Apple ikili dosyası bağlanırken, söz konusu ikili dosyanın geçişli bağımlılık grafiğinde listelenen tüm SDK çerçeveleri bağlanır.

sdk_includes

Dize listesi; varsayılan değer []

Bu hedefe eklenecek #include/#import arama yollarının ve her yolun $(SDKROOT)/usr/include'ye göreli olduğu tüm bağımlı hedeflerin listesi.
textual_hdrs

Etiketler listesi; varsayılan değer []'dir.

C, C++, Objective-C ve Objective-C++ dosyalarını içeren bu kuraldaki kaynak dosyalar veya bu kuralın kullanıcıları tarafından başlık olarak dahil edilir kitaplığını tanıtır. HDR'lerin aksine, bunlar kaynaklar.
weak_sdk_frameworks

Dize listesi; varsayılan değer []'tir.

Zayıf şekilde bağlantı kurulacak SDK çerçevelerinin adları. Örneğin, "MediaAccessibility" (Medya Erişilebilirliği) seçeneğini belirleyin. Normal şekilde bağlanmış SDK çerçevelerinin aksine, zayıf bağlı çerçevelerdeki semboller çalışma zamanında mevcut değilse hata oluşturmaz.

objc_library

Kural kaynağını görüntüle
objc_library(name, deps, srcs, data, hdrs, alwayslink, compatible_with, copts, defines, deprecation, distribs, enable_modules, exec_compatible_with, exec_properties, features, implementation_deps, includes, linkopts, module_map, module_name, non_arc_srcs, pch, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, stamp, tags, target_compatible_with, testonly, textual_hdrs, toolchains, visibility, weak_sdk_frameworks)

Bu kural, belirli Objective-C kaynak dosyalarından statik bir kitaplık oluşturur.

Bağımsız değişkenler

Özellikler
name

Ad; zorunlu

Bu hedef için benzersiz bir ad.

deps

Etiket listesi; varsayılan değer []

Bu hedefin bağlı olduğu hedeflerin listesi.
srcs

Etiketler listesi; varsayılan değer []'dir.

C, C++, Objective-C ve Objective-C++ kaynak ve üstbilgisi listesi dosya ve/veya (`.s`, `.S` ya da `.asm`) derleme kaynak dosyaları kitaplık hedefini. Bunlar, giriş yaptığınız dosyalar ve oluşturulan dosyalardır. Kaynak dosyalar Clang ile .o dosyalarına derlenir. Üstbilgi dosyaları, bu hedefin srcs özelliğindeki herhangi bir kaynak veya üstbilgi tarafından dahil edilebilir/ithal edilebilir ancak hdrs veya bu kurala bağlı herhangi bir hedef tarafından dahil edilemez. Ayrıca, önceden derlenmiş .o dosyaları src'ler olarak da verilebilir. Şunları yaparken dikkatli olun: sağlanan .o dosyalarının ve derlemesini kullanın.
hdrs

Etiketler listesi; varsayılan değer []'dir.

Yayınlanan C, C++, Objective-C ve Objective-C++ başlık dosyalarının listesi tarafından bağımlı kurallardaki kaynaklar tarafından dahil edilecek.

Bu başlıklar kütüphanenin herkese açık arayüzünü tanımlar ve bu kuraldaki kaynaklar tarafından veya bağımlı kurallar. Bu kitaplığın istemcisi tarafından dahil edilmemesi amaçlanan üstbilgiler, bunun yerine srcs özelliğinde listelenmelidir.

Modüller etkinse bunlar kaynaktan ayrı olarak derlenir.

Boole; varsayılan değer False

1 ise bu kitaplığa (doğrudan veya dolaylı olarak) bağımlı olan tüm paketler ya da ikili dosyalar, srcs ve non_arc_srcs'te listelenen dosyaların tüm nesne dosyalarını bağlar (bazılarında ikili dosya tarafından referans verilen simge olmasa bile). Bu, kodunuz ikili programdaki kod tarafından açıkça çağrılmıyorsa (ör. kodunuz bir hizmet tarafından sağlanan geri çağırma işlevini almak için kaydoluyorsa) kullanışlıdır.
copts

Dize listesi; varsayılan değer []

Derleyiciye iletilecek ek işaretler. "Değişken yap" değişikliğine tabi ve Bourne kabuk belirteçleme. Bu işaretler yalnızca bu hedef için geçerli olacaktır, veya buna bağımlı olanlara bağlıdır.

Oluşturulan Xcode projesi için dizin yollarının "-I" kullanılarak belirtildiğini unutmayın. CANNOT TRANSLATE copt'ler ayrıştırılır, başına "$(WORKSPACE_ROOT)/" eklenir Bunlar göreli yollar olup olmadığı ve eklenen Xcode hedefi için başlık arama yollarına eklenir.

defines

Dize listesi; varsayılan değer []

Derleyiciye iletilecek ek -D işaretleri. Bu dillerin KEY=VALUE veya sadece KEY yalnızca bu hedef için derleyiciye iletmekle kalmaz (copts olarak aynı zamanda bu hedefin tüm objc_ bağımlıları için de geçerlidir. "Değişken yap" değişikliğine tabi ve Bourne kabuk belirteçleme.
enable_modules

Boole; varsayılan değer False

Clang modülü desteğini etkinleştirir (-fmodules aracılığıyla). Bunu 1 olarak ayarlamak sistem üstbilgilerini ve diğer hedefleri @içe aktarmanızı sağlar: @import UIKit; @paketin_hedefine_aktarma yolu;
implementation_deps

Etiket listesi; varsayılan değer []

Kitaplık hedefine bağlı diğer kitaplıkların listesi. Şununla beğenme: deps, üstbilgilerini içerir ve bu kitaplıkların (ve tüm geçişli dep'ler) yalnızca bu kitaplığın derlenmesi için kullanılır, ona güvenmeniz gerekir. implementation_deps ile belirtilen kitaplıklar, bu kitaplığa bağlı olan ikili hedeflerde hâlâ bağlıdır.
includes

Dize listesi; varsayılan değer []'tir.

Bu hedefe ve tüm bağlı hedeflere eklenecek #include/#import arama yollarının listesi. Bu, #import/#include beyanlarında çalışma alanı yolunun tamamını belirtmeyen üçüncü taraf ve açık kaynak kitaplıkları desteklemek içindir.

Yollar, paket dizinine göre yorumlanır ve gendosyaları ve bin kökleri (ör. blaze-genfiles/pkg/includedir ve blaze-out/pkg/includedir) şu URL'lere ek olarak dahil edilir: gerçek istemci köküdür.

COPTS'nin aksine, bu işaretler bu kural için eklenir ona bağlı tüm kuralları görebiliriz. (Not: Bu, bağlı olduğu kurallar değildir.) geniş kapsamlı etkileri olabileceği için dikkatli olun. Şüpheye düştüğünüz durumlarda COPTS alanına "-iquote" işaretleri ekleyin.

linkopts

Dize listesi; varsayılan değer []'tir.

Bağlantı oluşturucuya iletilecek ek işaretler.
module_map

Etiket; varsayılan değer None'dir.

özel Clang modülü eşlemesi. Özel modül haritası kullanılması önerilmez. En sık kullanıcıları, Bazel tarafından oluşturulan modül haritalarını kullanmalıdır. Belirtilirse Bazel, bu hedef için bir modül eşlemesi oluşturmaz ancak derleyici için sağlanan modül haritasıdır.
module_name

Dize; varsayılan değer ""'tir

Bu hedefin modül adını belirler. Varsayılan olarak modül adı, tüm özel sembollerin _ ile değiştirildiği hedef yoldur. Örneğin, //foo/baz:bar, foo_baz_bar olarak içe aktarılabilir.
non_arc_srcs

Etiket listesi; varsayılan değer []

Search Ads 360'ı oluşturmak için işlenen Objective-C dosyalarının listesi kitaplık hedefi olacaktır. Bu özellikteki dosyalar, srcs özelliğindeki dosyalara çok benzer şekilde ele alınır ancak ARC etkinleştirilmeden derlenir.
pch

Etiket; varsayılan değer None'dir.

Derlenen her kaynak dosyasının başına eklenecek başlık dosyası (her iki yay da) ve yay dışı). BUILD dosyalarında pch dosyalarının kullanılması önerilmez ve bu bu önerinin sonlandırıldığı kabul edilir. pch dosyaları aslında önceden derlenmediğinden geliştirilme sürecidir. Bunun yerine küresel bir bağımlılık söz konusudur. Bir derlemeden doğrudan ihtiyaç duyduğunuz verileri de dahil ederek, verimlilik açısından kaynaklarda bulabilirsiniz.
sdk_dylibs

Dize listesi; varsayılan değer []'tir.

Bağlantı kurulacak SDK .dylib kitaplıklarının adları. Örneğin, "libz" veya "libarchive". "libc++" ikili programda C++ veya Bağımlılık ağacındaki Objective-C++ kaynakları. Bir ikili programı bağlarken ikili programın geçişli bağımlılık grafiğinde adı geçen tüm kitaplıklar kullanılır.
sdk_frameworks

Dize listesi; varsayılan değer []

Bağlanacak SDK çerçevelerinin adları (ör. "AddressBook", "QuartzCore").

Üst düzey bir Apple ikili dosyası bağlanırken, söz konusu ikili dosyanın geçişli bağımlılık grafiğinde listelenen tüm SDK çerçeveleri bağlanır.

sdk_includes

Dize listesi; varsayılan değer []

Bu hedefe eklenecek #include/#import arama yolunun listesi ve her yolun göreceli olduğu hedeflere bağlı olarak $(SDKROOT)/usr/include.
stamp

Boole; varsayılan değer False'tir

textual_hdrs

Etiketler listesi; varsayılan değer []'dir.

C, C++, Objective-C ve Objective-C++ dosyalarını içeren bu kuraldaki kaynak dosyalar veya bu kuralın kullanıcıları tarafından başlık olarak dahil edilir kitaplığını tanıtır. HDR'lerin aksine, bunlar kaynaklar.
weak_sdk_frameworks

Dize listesi; varsayılan değer []'tir.

Zayıf bağlantı kurulacak SDK çerçevelerinin adları. Örneğin, "MediaAccessibility". Düzenli olarak bağlanmış SDK çerçeveleri, simgeler birbirine çok daha fazla maruz kaldığında mevcut olmayanlardır.