native.cc_library). Yerel modülün yalnızca yükleme aşamasında (yani kurallar için değil, makrolar için) kullanılabildiğini unutmayın. Özellikler, None değerlerini yoksayar ve özelliği ayarlanmamış gibi değerlendirir.Aşağıdaki işlevler de kullanılabilir:
Üyeler
- existing_rule
- existing_rules
- exports_files
- glob
- module_name
- module_version
- package_group
- package_name
- package_relative_label
- repo_name
- repository_name
- subpackages
existing_rule
unknown native.existing_rule(name)
None döndürür.Burada değiştirilemez sözlük benzeri nesne, sözlük benzeri yinelemeyi destekleyen x, len(x), name in x, x[name], x.get(name), x.items(), x.keys() ve x.values() gibi derinlemesine değiştirilemez bir nesne anlamına gelir.
--noincompatible_existing_rules_immutable_view işareti ayarlanırsa aynı içeriğe sahip yeni bir değiştirilebilir sözlük döndürülür.
Sonuç, özel olanlar (adları harfle başlamayanlar) ve birkaç temsil edilemeyen eski özellik türü hariç olmak üzere her özellik için bir giriş içerir. Ayrıca sözlük, kural örneğinin name ve kind girişlerini (örneğin, 'cc_binary') içerir.
Sonucun değerleri, özellik değerlerini aşağıdaki gibi temsil eder:
- str, int ve bool türündeki özellikler olduğu gibi gösterilir.
- Etiketler, aynı paketteki hedefler için
':foo'biçiminde, farklı paketteki hedefler için ise'//pkg:name'biçiminde dizelere dönüştürülür. - Listeler demet olarak gösterilir ve sözlükler yeni, değiştirilebilir sözlüklere dönüştürülür. Bu öğeler, aynı şekilde yinelemeli olarak dönüştürülür.
selectdeğerleri, içerikleri yukarıda açıklandığı şekilde dönüştürülerek döndürülür.- Kural oluşturma sırasında değeri belirtilmeyen ve varsayılan değeri hesaplanan özellikler sonuçtan çıkarılır. (Hesaplanmış varsayılanlar, analiz aşamasına kadar hesaplanamaz.)
Mümkünse bu işlevi kullanmayın. BUILD dosyalarını kırılgan ve sıraya bağımlı hale getirir. Ayrıca, kural özelliği değerlerinin dahili formdan Starlark'a dönüştürülmesinin diğer iki dönüşümünden biraz farklı olduğunu unutmayın: Biri hesaplanmış varsayılanlar, diğeri ise ctx.attr.foo tarafından kullanılır.
Parametreler
| Parametre | Açıklama |
|---|---|
name
|
gerekli Hedefin adı. |
existing_rules
unknown native.existing_rules()
existing_rule(name) tarafından döndürülecek sonuçla eşler.Burada değiştirilemez sözlük benzeri nesne, sözlük benzeri yinelemeyi destekleyen x, len(x), name in x, x[name], x.get(name), x.items(), x.keys() ve x.values() gibi derinlemesine değiştirilemez bir nesne anlamına gelir.
--noincompatible_existing_rules_immutable_view işareti ayarlanırsa aynı içeriğe sahip yeni bir değiştirilebilir sözlük döndürülür.
Not: Mümkünse bu işlevi kullanmaktan kaçının. BUILD dosyalarını kırılgan ve sıraya bağımlı hale getirir. Ayrıca, --noincompatible_existing_rules_immutable_view işareti ayarlanmışsa bu işlev, özellikle bir döngü içinde çağrıldığında çok maliyetli olabilir.
exports_files
None native.exports_files(srcs, visibility=None, licenses=None)Parametreler
| Parametre | Açıklama |
|---|---|
srcs
|
sequence of strings;
required Dışa aktarılacak dosyaların listesi. |
visibility
|
sequence veya None;
varsayılan değer NoneGörünürlük bildirimi belirtilebilir. Dosyalar, belirtilen hedefler tarafından görülebilir. Görünürlük belirtilmezse dosyalar her pakette görünür. |
licenses
|
Dizelerin sırası veya None;
varsayılan değer NoneBelirtilecek lisanslar. |
glob
sequence native.glob(include=[], exclude=[], exclude_directories=1, allow_empty=unbound)
includeiçinde en az bir kalıpla eşleşiyor.excludeiçindeki kalıplardan biriyle eşleşmiyor (varsayılan[]).
exclude_directories bağımsız değişkeni etkinleştirilirse (1 olarak ayarlanırsa) dizin türündeki dosyalar sonuçlardan çıkarılır (varsayılan 1).
Parametreler
| Parametre | Açıklama |
|---|---|
include
|
Dizelerin sırası;
varsayılan değer []Dahil edilecek glob desenlerinin listesi. |
exclude
|
string'lerin sırası;
varsayılan değer []Hariç tutulacak glob desenlerinin listesi. |
exclude_directories
|
varsayılan değer 1Dizinlerin hariç tutulup tutulmayacağını belirten bir işaret. |
allow_empty
|
Varsayılan değer unbound'dir. Glob kalıplarının hiçbir şeyle eşleşmesine izin verilip verilmeyeceği. `allow_empty` False ise her bir dahil etme kalıbı bir şeyle eşleşmeli ve son sonuç da boş olmamalıdır (eşleşen `exclude` kalıpları hariç tutulduktan sonra). |
module_name
string native.module_name()
module_ctx.modules içinde görünen module.name alanı ile aynıdır.
None tarihine kadar iade edilebilir.
module_version
string native.module_version()
module_ctx.modules içinde görünen module.version alanı ile aynıdır.
None tarihine kadar iade edilebilir.
package_group
None native.package_group(name, packages=[], includes=[])visibility özelliklerinde referans verilebilir.
Parametreler
| Parametre | Açıklama |
|---|---|
name
|
zorunlu Bu kuralın benzersiz adı. |
packages
|
sequence of strings;
default is []Bu gruptaki paketlerin tam listesi. |
includes
|
string'lerin sequence'ı;
varsayılan değer []Buna dahil edilen diğer paket grupları. |
package_name
string native.package_name()
some/package/BUILD BUILD dosyasında değeri some/package olur. BUILD dosyası, .bzl dosyasında tanımlanan bir işlevi çağırıyorsa package_name(), çağıran BUILD dosyası paketiyle eşleşir.
package_relative_label
Label native.package_relative_label(input)
BUILD dosyası) bir Label nesnesine dönüştürür. Giriş zaten bir Label ise değiştirilmeden döndürülür.Bu işlev yalnızca bir BUILD dosyası ve doğrudan veya dolaylı olarak çağırdığı makrolar değerlendirilirken çağrılabilir. Örneğin, bir kural uygulama işlevinde çağrılamaz.
Bu işlevin sonucu, verilen dizeyi BUILD dosyasında belirtilen bir hedefin etiket değerli özelliğine ileterek elde edilen Label değeriyle aynıdır.
Kullanım notu: Bu işlev ile Label() arasındaki fark, Label() işlevinin BUILD dosyasının değil, kendisini çağıran .bzl dosyasının paket bağlamını kullanmasıdır. Bir derleyici gibi makroya sabit kodlanmış bir hedefe başvurmanız gerektiğinde Label() kullanın. BUILD dosyası tarafından sağlanan bir etiket dizesini package_relative_label() nesnesine normalleştirmeniz gerektiğinde package_relative_label() işlevini kullanın.Label (BUILD dosyası veya çağıran .bzl dosyası dışındaki bir paket bağlamında bir dizeyi Label öğesine dönüştürmenin bir yolu yoktur. Bu nedenle, dış makrolar her zaman etiket dizeleri yerine etiket nesnelerini iç makrolara geçirmeyi tercih etmelidir.)
Parametreler
| Parametre | Açıklama |
|---|---|
input
|
string veya Label;
required Giriş etiketi dizesi veya Etiket nesnesi. Bir Label nesnesi iletilirse olduğu gibi döndürülür. |
repo_name
string native.repo_name()
repository_name
string native.repository_name()
--+incompatible_enable_deprecated_label_apis Kullanımdan kaldırıldı. ayarlanarak deneysel olarak etkinleştirilebilir. Bunun yerine, başında gereksiz @ işareti içermeyen ancak diğer açılardan aynı şekilde çalışan
repo_name özelliğini kullanmanız önerilir.Şu anda değerlendirilmekte olan paketi içeren deponun standart adı. Tek bir @ işareti (@) ile başlar. Örneğin, WORKSPACE stanza'sı local_repository(name='local', path=...) tarafından oluşturulan paketlerde @local olarak ayarlanır. Ana depodaki paketlerde @ olarak ayarlanır.
alt paketler
sequence native.subpackages(include, exclude=[], allow_empty=False)
Parametreler
| Parametre | Açıklama |
|---|---|
include
|
sequence of strings;
required Alt paket taramasına dahil edilecek glob kalıplarının listesi. |
exclude
|
string'lerin sequence'ı;
varsayılan değer []Alt paket taramasından hariç tutulacak glob desenlerinin listesi. |
allow_empty
|
Varsayılan değer False'dir. Çağrı boş bir liste döndürürse başarısız olup olmayacağımız. Varsayılan olarak boş liste, subpackages() çağrısının gereksiz olduğu BUILD dosyasında olası bir hatayı gösterir. Doğru olarak ayarlamak, bu işlevin söz konusu durumda başarılı olmasını sağlar. |