native.cc_library). Yerel modülün yalnızca yükleme aşamasında (ör. makrolar için, kural uygulamaları için değil) 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 (x), len(x), name in x, x[name], x.get(name), x.items(), x.keys() ve x.values()) destekleyen, değiştirilemez bir nesne anlamına gelir.
--noincompatible_existing_rules_immutable_view işareti ayarlanmışsa aynı içeriğe sahip yeni bir değiştirilebilir sözlük döndürür.
Sonuç, özel olanlar (adları harfle başlamayanlar) ve gösterilemeyen birkaç 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ülmesinde kullanılan diğer iki dönüşümden biraz farklı olduğunu unutmayın: Biri hesaplanmış varsayılanlar tarafından, diğeri ise ctx.attr.foo tarafından kullanılır.
Parametreler
| Parametre | Açıklama |
|---|---|
name
|
required 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 (x), len(x), name in x, x[name], x.get(name), x.items(), x.keys() ve x.values()) destekleyen, değiştirilemez bir nesne anlamına gelir.
--noincompatible_existing_rules_immutable_view işareti ayarlanmışsa aynı içeriğe sahip yeni bir değiştirilebilir sözlük döndürü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;
requiredDışa aktarılacak dosyaların listesi. |
visibility
|
sequence; or None;
default = NoneBir gö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
|
sequence of strings; or None;
default = NoneLicenses to be specified. |
glob
sequence native.glob(include=[], exclude=[], exclude_directories=1, allow_empty=unbound)
includeiçindeki kalıplardan en az biriyle eşleşir.excludeiçindeki kalıplardan hiç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
|
sequence of strings;
default = []Dahil edilecek glob kalıplarının listesi. |
exclude
|
sequence of strings;
default = []Hariç tutulacak glob kalıplarının listesi. |
exclude_directories
|
varsayılan = 1 Dizinlerin hariç tutulup tutulmayacağını belirten bir işaret. |
allow_empty
|
default = unbound Glob kalıplarının hiçbir şeyle eşleşmesine izin verip vermediğimiz. `allow_empty` False ise her bir dahil etme kalıbı bir şeyle eşleşmeli ve nihai sonuç da boş olmamalıdır (hariç tutma kalıplarının eşleşmeleri hariç tutulduktan sonra). |
module_name
string native.module_name()
module_ctx.modules içinde görünen module.name alanı ile aynıdır.
Dönüş None.
module_version
string native.module_version()
module_ctx.modules içinde görünen module.version alanı ile aynıdır.
Dönüş None.
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 = []Bu gruptaki paketlerin tam listesi. |
includes
|
sequence of strings;
default = []Bu pakete 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; or Label;
requiredGiriş 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. Başında gereksiz @ işareti içermeyen ancak diğer açılardan aynı şekilde çalışan
repo_name 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 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;
requiredAlt paket taramasına dahil edilecek glob kalıplarının listesi. |
exclude
|
sequence of strings;
default = []Alt paket taramasından hariç tutulacak glob kalıplarının listesi. |
allow_empty
|
default = False Ç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 hataya işaret eder. Doğru olarak ayarlamak, bu işlevin söz konusu durumda başarılı olmasını sağlar. |