native.cc_library Yerel modülün yalnızca yükleme aşamasında kullanılabildiğini unutmayın (ör. kural uygulamaları için değil, makrolar için). Özellikler, None değerleri yoksayar ve onları özellik ayarlanmamış gibi ele alır.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
- repository_name
- alt paketler
existing_rule
unknown native.existing_rule(name)
None döndürür.Burada dikkat benzeri sabit nesne, dikt benzeri yinelemeyi destekleyen x, tamamen sabit olmayan nesne x, len(x), name in x, x[name], x.get(name), x.items(), x.keys() ve x.values() anlamına gelir.
--noincompatible_existing_rules_immutable_view işareti ayarlanırsa bunun yerine aynı içeriğe sahip yeni bir değişken bir dikt döndürülür.
Sonuç, gizli olanlar (adları harfle başlamayan) ve bazı temsil edilemeyen eski özellik türleri hariç her bir özellik için bir giriş içerir. Ayrıca, kural, kural örneğinin name ve kind (örneğin, 'cc_binary') öğeleri için girişler içerir.
Sonucun değerleri, özellik değerlerini şu şekilde temsil eder:
- str, int ve bool türündeki özellikler olduğu gibi gösterilir.
- Etiketler, aynı paketteki hedefler için
':foo'veya farklı bir paketteki hedefler için'//pkg:name'biçiminde dizelere dönüştürülür. - Listeler delikler olarak temsil edilir ve dikteler yeni, değişebilir diktelere dönüştürülür. Kullandıkları öğeler yinelenmeyle aynı şekilde dönüştürülür.
selectdeğerleri, içerikleri yukarıda açıklandığı gibi dönüştürülerek döndürülür.- Kural örneklendirmesi sırasında hiçbir değer belirtilmeyen ve varsayılan değeri hesaplanan özellikler sonuçtan hariç tutulur. (Hesaplanan varsayılan ayarlar analiz aşamasına kadar hesaplanamaz.)
Mümkünse bu işlevi kullanmaktan kaçının. BUILD dosyalarını kırılabilir ve sıraya bağlı hale getirir. Ayrıca, bu koşulun, dahili formdan Starlark'a kural özelliği değerlerini içeren diğer iki dönüşümden (biri hesaplanan varsayılanlar, diğeri ise ctx.attr.foo tarafından kullanılan) arasında belli bir fark olmadığını unutmayın.
Parametreler
| Parametre | Açıklama |
|---|---|
name
|
zorunlu Hedefin adı. |
existing_rules
unknown native.existing_rules()
existing_rule(name) tarafından döndürülecek sonuçla eşleştirir.Burada dikkat benzeri sabit nesne, dikt benzeri yinelemeyi destekleyen x, tamamen sabit olmayan nesne x, len(x), name in x, x[name], x.get(name), x.items(), x.keys() ve x.values() anlamına gelir.
--noincompatible_existing_rules_immutable_view işareti ayarlanırsa bunun yerine aynı içeriğe sahip yeni bir değişken bir dikt döndürülür.
Not: Mümkünse bu işlevi kullanmaktan kaçının. BUILD dosyalarını kırılabilir ve sıraya bağlı 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 pahalı olabilir.
exports_files
None native.exports_files(srcs, visibility=None, licenses=None)
Parametreler
| Parametre | Açıklama |
|---|---|
srcs
|
sequence of strings;
gerekliDışa aktarılacak dosyaların listesi. |
visibility
|
sequence; or None;
varsayılan = YokGörünürlük beyanı belirtilebilir. Dosyalar, belirtilen hedefler tarafından görülebilir. Görünürlük belirtilmezse dosyalar her paket tarafından görülebilir. |
licenses
|
sequence of strings; or None;
varsayılan = YokBelirtilecek lisanslar. |
glob
sequence native.glob(include=[], exclude=[], exclude_directories=1, allow_empty=unbound)
includeiçindeki en az bir kalıpla eşleşiyor.excludeiçindeki kalıpların 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 olarak 1).
Parametreler
| Parametre | Açıklama |
|---|---|
include
|
sequence of strings;
varsayılan = []Dahil edilecek glob kalıplarının listesi. |
exclude
|
sequence of strings;
varsayılan = []Hariç tutulacak glob kalıplarının listesi. |
exclude_directories
|
varsayılan = 1 Dizinlerin hariç tutulup tutulmayacağını belirten bir işaret. |
allow_empty
|
varsayılan = bağlı değil Glob kalıplarının hiçbir şeyle eşleşmemesine izin verip vermediğimiz. "allow_boş" Yanlış değerine ayarlanırsa her bağımsız dahil etme kalıbı bir şeyle eşleşmeli ve nihai sonuç boş olmamalıdır ("hariç_tutulan" kalıplarıyla eşleşmeler hariç tutulduktan sonra). |
module_name
string native.module_name()
module_ctx.modules konumunda görülen module.name alanıyla aynıdır.
None sonucunu döndürebilir.
module_version
string native.module_version()
module_ctx.modules konumunda görülen module.version alanıyla aynıdır.
None sonucunu döndürebilir.
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;
varsayılan = []Bu gruptaki paketlerin tam listesi. |
includes
|
sequence of strings;
varsayılan = []Buna dahil olan 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ımlanmış bir işlevi çağırırsa package_name(), çağrıyı yapan BUILD dosya paketiyle eşleşir. Bu işlev, kullanımdan kaldırılan PACKAGE_NAME değişkenine eşdeğerdir.
package_relative_label
Label native.package_relative_label(input)
BUILD dosyası) bağlamında bir Label nesnesine dönüştürür. Giriş zaten Label ise değiştirilmeden döndürülür.Bu işlev yalnızca 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ılamayabilir.
Bu işlevin sonucu, belirtilen dizenin BUILD dosyasında bildirilen hedefin etiket değerli özelliğine geçirilmesiyle elde edilecek Label değeriyle aynıdır.
Kullanım notu: Bu işlev ile Label() arasındaki fark Label() özelliğinin BUILD dosyasının paketini değil, onu çağıran .bzl dosyasının paketinin bağlamını kullanmasıdır. Derleyici gibi makroya sabit kodlu bir hedefe referans vermeniz gerektiğinde Label() kullanın. BUILD dosyası tarafından bir Label nesnesine sağlanan etiket dizesini normalleştirmeniz gerektiğinde package_relative_label() kullanın. (Bir dize, BUILD dosyası veya çağrı yapan .bzl dosyası dışında bir paket bağlamındaki bağlamda Label öğesine dönüştürülemez. Bu nedenle, dış makrolar Etiket nesnelerini her zaman etiket dizeleri yerine iç makrolara geçirmeyi tercih etmelidir.)
Parametreler
| Parametre | Açıklama |
|---|---|
input
|
string; or Label;
gerekliGiriş etiketi dizesi veya Etiket nesnesi. Bir Etiket nesnesi geçilirse olduğu gibi döndürülür. |
repository_name
string native.repository_name()
local_repository(name='local', path=...) ifadesiyle var olmaya çağrılan paketlerde bu değer @local olarak ayarlanır. Ana depodaki paketlerde ise @ olarak ayarlanır. Bu işlev, kullanımdan kaldırılan REPOSITORY_NAME değişkenine eşdeğerdir.
alt paketler
sequence native.subpackages(include, exclude=[], allow_empty=False)
Parametreler
| Parametre | Açıklama |
|---|---|
include
|
sequence of strings;
gerekliAlt paket taramasına dahil edilecek glob kalıplarının listesi. |
exclude
|
sequence of strings;
varsayılan = []Alt paket taramasından hariç tutulacak glob kalıplarının listesi. |
allow_empty
|
varsayılan = Yanlış Çağrı, boş bir liste döndürürse başarısız olup olmayacağımız. Varsayılan olarak boş liste, BUILD dosyasında subpackages() çağrısının çok fazla olduğu olası hatayı gösterir. Politika "true" (doğru) değerine ayarlanırsa bu işlev söz konusu durumda başarılı olur. |