native.cc_library
). Yerel modülün yalnızca yükleme aşamasında kullanılabildiğini unutmayın (ör. makrolar için, kural uygulamaları için kullanılamaz). Özellikler, None
değerlerini yok sayar ve bunları özellik ayarlanmamış gibi kabul eder.Aşağıdaki işlevler de kullanılabilir:
Üyeler
- existing_rule
- existing_rules
- exports_files
- glob
- package_group
- package_name
- repository_name
- alt paketler
existing_rule
unknown native.existing_rule(name)Bu iş parçacığının paketinde somutlaşan bir kuralın özelliklerini açıklayan sabit, dikte benzeri bir nesne veya bu ada ait herhangi bir kural örneği yoksa
None
döndürür.Burada, dikte benzeri bir nesne, dikte gibi yinelemeyi destekleyen, son derece sabit bir x
nesnesi anlamına gelir. Bu nesne, 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 ayarlanmışsa bunun yerine, aynı içeriğe sahip yeni bir değişken komut döndürür.
Sonuç, özel özellikler (adı bir harfle başlamayan) ve temsil edilemeyen birkaç eski özellik türü hariç olmak üzere her özellik için bir giriş içerir. Ayrıca, kural örneğinin name
ve kind
(örneğin, 'cc_binary'
) için girişler de içerir.
Sonucun değerleri, özellik değerlerini aşağıdaki gibi temsil eder:
- str, int ve bool türleri 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 tuple olarak temsil edilir ve dikteler yeni, değişebilir komutlara dönüştürülür. Bunların öğeleri yinelemeli olarak aynı şekilde dönüştürülür.
select
değerleri, içerikleri yukarıda açıklandığı gibi dönüştürülerek döndürülür.- Kural örneklendirmesi sırasında herhangi bir değer belirtilmeyen ve varsayılan değeri hesaplanan özellikler sonuçtan hariç tutulur. (Hesaplanan varsayılan değerler, analiz aşamasına kadar hesaplanamaz.)
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, bir tanesi hesaplanmış varsayılanlar tarafından, diğeri ctx.attr.foo
tarafından kullanılan, dahili formdan Starlark'a yapılan kural özelliği değerlerinin diğer iki dönüşümünden çok küçük farkları olduğunu unutmayın.
Parametreler
Parametre | Açıklama |
---|---|
name
|
gerekli Hedefin adı. |
existing_rules
unknown native.existing_rules()Bu iş parçacığının paketinde şimdiye kadar somutlaşan kuralları açıklayan sabit bir dikt benzeri nesne döndürür. Dikt benzeri nesnenin her bir girişi, kural örneğinin adını
existing_rule(name)
tarafından döndürülecek sonuçla eşleştirir.Burada, dikte benzeri bir nesne, dikte gibi yinelemeyi destekleyen, son derece sabit bir x
nesnesi anlamına gelir. Bu nesne, 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 ayarlanmışsa bunun yerine, aynı içeriğe sahip yeni bir değişken komut 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 pahalı olabilir.
exports_files
None native.exports_files(srcs, visibility=None, licenses=None)Diğer paketlere aktarılan, bu pakete ait dosyaların listesini belirtir.
Parametreler
Parametre | Açıklama |
---|---|
srcs
|
sequence of strings ;
zorunluDışa aktarılacak dosyaların listesi. |
visibility
|
sequence; or None ;
varsayılan = YokGörünürlük bildirimi 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)Glob, geçerli pakette bulunan ve aşağıdaki özelliklere sahip her dosyanın yeni, değişebilir, sıralanmış listesini döndürür:
include
içinde en az bir kalıpla eşleşiyor.exclude
içindeki kalıpların hiçbiriyle eşleşmiyor (varsayılan[]
).
exclude_directories
bağımsız değişkeni etkinse (1
olarak ayarlanır) 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ı listesi. |
exclude_directories
|
default = 1 Dizinlerin hariç tutulup tutulmayacağına işaret. |
allow_empty
|
default = unbound Glob kalıplarının hiçbir şeyle eşleşmemesine izin verilip verilmeyeceği. "allow_Blank" değeri Yanlış değerine ayarlanırsa her bir dahil etme kalıbı bir şeyle eşleşmelidir ve nihai sonuç da boş olmamalıdır ("hariç tut" kalıplarının eşleşmeleri hariç tutulduktan sonra). |
package_group
None native.package_group(name, packages=[], includes=[])Bu işlev, bir paket kümesi tanımlar ve gruba bir etiket atar. Etikete
visibility
özelliklerinde referans verilebilir.
Parametreler
Parametre | Açıklama |
---|---|
name
|
gerekli Bu kural için benzersiz ad. |
packages
|
sequence of strings ;
default = []Bu gruptaki paketlerin tam listesi. |
includes
|
sequence of strings ;
default = []Buna dahil olan diğer paket grupları. |
package_name
string native.package_name()Değerlendirilen paketin adı. Örneğin,
some/package/BUILD
DERLEME dosyasının değeri some/package
olur. DERLEME 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ğer.
repository_name
string native.repository_name()Kuralın veya derleme uzantısının çağrıldığı deponun adı. Örneğin, WORKSPACE kıtası
local_repository(name='local', path=...)
ile çağrılan paketlerde, @local
olarak ayarlanır. Ana depodaki paketlerde @
olarak ayarlanır. Bu işlev, kullanımdan kaldırılan REPOSITORY_NAME
değişkenine eşdeğer.
alt paketler
sequence native.subpackages(include, exclude=[], allow_empty=False)Dosya sistemi dizini derinliğinden bağımsız olarak, geçerli paketin her doğrudan alt paketinin yeni değişken listesini döndürür. Döndürülen liste sıralanır ve geçerli pakete göre alt paketlerin adlarını içerir. Bu işlevi doğrudan çağırmak yerine bazel_skylib.subpackages modülündeki yöntemleri kullanmayı tercih etmeniz önerilir.
Parametreler
Parametre | Açıklama |
---|---|
include
|
sequence of strings ;
gerekliAlt 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ürdüğünde başarısız olup olmayacağımızı belirtir. Varsayılan olarak boş liste, DERLEME dosyasında subpackages() çağrısının aşırı olduğu olası bir hatayı gösterir. Doğru değerine ayarlamak, bu işlevin bu durumda başarılı olmasına olanak tanır. |