İşlem oluşturmak için işlevler sağlayan modül. ctx.actions
simgesini kullanarak bu modüle erişebilirsiniz.
Üyeler
- bağımsız değişkenler
- declare_directory
- declare_file
- declare_symlink
- do_nothing
- expand_template
- koşu
- run_shell
- sembolik bağlantı
- template_dict
- yazma
args
Args actions.args()Hafıza açısından verimli komut satırı oluşturmak için kullanılabilecek bir Args nesnesi döndürür.
declare_directory
File actions.declare_directory(filename, *, sibling=None)Kuralın veya özelliğin, geçerli pakette belirtilen ada sahip bir dizin oluşturduğunu bildirir. Dizini oluşturan bir işlem oluşturmanız gerekir. Dizinin içeriğine Starlark'tan doğrudan erişilemez ancak
Args.add_all()
ile bir işlem komutunda genişletilebilir. declare_directory öğesinin genişletilmiş içeriğinde yalnızca normal dosyalar ve dizinler bulunabilir.
Parametreler
Parametre | Açıklama |
---|---|
filename
|
zorunlu "Kardeş" belirtilmezse yeni dizinin mevcut pakete göre yolu. Aksi takdirde, bir dosyanın temel adı ("kardeş" bir dizini tanımlar). |
sibling
|
File (Dosya); veya None ;
varsayılan değer: None Yeni bildirilen dizinle aynı dizinde bulunan bir dosya. Dosya geçerli pakette olmalıdır. |
declare_file
File actions.declare_file(filename, *, sibling=None)Kuralın veya özelliğin belirtilen dosya adına sahip bir dosya oluşturduğunu bildirir.
sibling
belirtilmezse dosya adı paket dizinine göre belirlenir. Aksi takdirde dosya, sibling
ile aynı dizinde olur. Dosyalar, geçerli paketin dışında oluşturulamaz.Bir dosyayı bildirmeye ek olarak, dosyayı yayınlayan bir işlem de oluşturmanız gerektiğini unutmayın. Bu işlemin oluşturulması, döndürülen File
nesnesinin işlemin oluşturma işlevine iletilmesini gerektirir.
Önceden tanımlanmış çıkış dosyalarının bu işlev kullanılarak tanımlanması gerekmez (ve tanımlanamaz). Bunun yerine, ctx.outputs
öğesinden File
nesnelerini alabilirsiniz. Kullanım örneğine bakın.
Parametreler
Parametre | Açıklama |
---|---|
filename
|
zorunlu "Kardeş" yoksa sağlanan yeni dosyanın yolunu gösterir. Aksi takdirde, bir dosyanın temel adı ("kardeş" bir dizini belirler). |
sibling
|
File (Dosya); veya None ;
varsayılan değer: None Yeni oluşturulan dosyayla aynı dizinde bulunan bir dosya. Dosya, mevcut pakette olmalıdır. |
declare_symlink
File actions.declare_symlink(filename, *, sibling=None)Kuralın veya özelliğin, geçerli pakette belirtilen adla bir sembolik bağlantı oluşturduğunu belirtir. Bu sembolik bağlantıyı oluşturan bir işlem oluşturmanız gerekir. Bazel, bu sembolik bağlantıyı hiçbir zaman kaldırmaz ve tam olarak korumalı alanlara veya uzak yürütücülere aktarır. Ağaç yapılarının içindeki simge bağlantıları şu anda desteklenmemektedir.
Parametreler
Parametre | Açıklama |
---|---|
filename
|
zorunlu "Kardeş" sağlanmazsa yeni sembolik bağlantının mevcut pakete göre yolu. Aksi takdirde, dosya için temel bir ad ('sibling' bir dizini tanımlar). |
sibling
|
File (Dosya); veya None ;
varsayılan değer: None Yeni bildirilen sembolik bağlantıyla aynı dizinde bulunan bir dosya. |
do_nothing
None
actions.do_nothing(mnemonic, inputs=[])
Ne komut yürüten ne de çıkış oluşturan ancak "ek işlemler" eklemek için yararlı olan boş bir işlem oluşturur.
Parametreler
Parametre | Açıklama |
---|---|
mnemonic
|
required İşlemin tek kelimelik açıklaması (ör. CppCompile veya GoLink). |
inputs
|
sequence of Files; veya depset;
varsayılan ayar [] İşlemin giriş dosyalarının listesi. |
expand_template
None
actions.expand_template(template, output, substitutions={}, is_executable=False, computed_substitutions=unbound)
Şablon genişletme işlemi oluşturur. İşlem yürütüldüğünde, şablona dayalı bir dosya oluşturur. Şablonun bazı bölümleri, değişikliklerin belirtildiği sırayla substitutions
sözlüğü kullanılarak değiştirilecek. Şablonda bir sözlük anahtarı göründüğünde (veya önceki bir değiştirme işleminin sonucunda), söz konusu anahtar ilişkili değerle değiştirilir. Anahtarlar için özel bir söz dizimi yoktur. Örneğin, çakışmaları önlemek için küme parantezleri kullanabilirsiniz (örneğin, {KEY}
). Kullanım örneğini inceleyin.
Parametreler
Parametre | Açıklama |
---|---|
template
|
zorunlu UTF-8 olarak kodlanmış bir metin dosyası olan şablon dosyası. |
output
|
zorunlu UTF-8 olarak kodlanmış bir metin dosyası olan çıkış dosyası. |
substitutions
|
varsayılan {} Şablon genişletilirken yapılacak ikameler. |
is_executable
|
varsayılan değer False Çıkış dosyasının yürütülebilir olup olmayacağı. |
computed_substitutions
|
TemplateDict;
varsayılan değer unbound Şablon genişletilirken yapılacak ikameler. |
run
None
actions.run(outputs, inputs=[], unused_inputs_list=None, executable, tools=unbound, arguments=[], mnemonic=None, progress_message=None, use_default_shell_env=False, env=None, execution_requirements=None, input_manifests=None, exec_group=None, shadowed_action=None, resource_set=None, toolchain=unbound)
Yürütülebilir dosya çalıştıran bir işlem oluşturur. Kullanım örneğini inceleyin.
Parametreler
Parametre | Açıklama |
---|---|
outputs
|
Dosya dizisi;
zorunlu İşlemin çıkış dosyalarının listesi. |
inputs
|
sequence of Files; veya depset;
varsayılan ayar [] İşlemin giriş dosyalarının listesi veya görünümü. |
unused_inputs_list
|
Dosya veya None ;
varsayılan değer None İşlem tarafından kullanılmayan girişlerin listesini içeren dosya. Bu dosyanın içeriği (genellikle işlemin çıkışlarından biri), işlemin tamamı sırasında kullanılmayan giriş dosyalarının listesine karşılık gelir. Bu dosyalarda yapılan değişiklikler, işlemin çıktılarını hiçbir şekilde etkilememelidir. |
executable
|
File (Dosya); veya string; veya FilesToRunProvider;
gerekli İşlem tarafından çağrılacak yürütülebilir dosya. |
tools
|
sequence veya depset;
varsayılan değer unbound İşlemin ihtiyaç duyduğu tüm araçların listesi veya depset. Araçlar, işleme otomatik olarak sunulan ek çalıştırma dosyalarına sahip girişlerdir. Sağlanan liste, heterojen bir dosya koleksiyonu, FilesToRunProvider örnekleri veya dosyaların depsetleri olabilir. Doğrudan listede bulunan ve ctx.executable kaynağından gelen dosyaların çalıştırma dosyaları otomatik olarak eklenir. Bir tanımlayıcı sağlandığında yalnızca Dosyalar içermelidir. Her iki durumda da, depset'lerdeki dosyalar, çalışma dosyaları için ctx.executable ile çapraz referans oluşturmaz. |
arguments
|
sequence;
varsayılan değer [] İşlemin komut satırı bağımsız değişkenleri. Dizelerin veya actions.args() nesnelerinin listesi olmalıdır.
|
mnemonic
|
string; veya None ;
varsayılan değer: None İşlemin tek kelimelik bir açıklaması, örneğin, CppCompile veya GoLink. |
progress_message
|
dize veya None ;
varsayılan değer None Derleme sırasında kullanıcıya gösterilecek ilerleme mesajı (ör. "foo.o oluşturmak için foo.cc derleniyor"). İleti, sırasıyla etiket dizesi, ilk giriş veya çıkışın yoluyla değiştirilen %{label} , %{input} veya %{output} kalıpları içerebilir. Statik dizeler daha verimli olduğundan bu dizeler yerine kalıplar kullanmayı tercih edin.
|
use_default_shell_env
|
varsayılan değer False İşlemin, işletim sistemine bağlı birkaç değişkenin yanı sıra --action_env aracılığıyla ayarlanan değişkenlerden oluşan varsayılan kabuk ortamını kullanıp kullanmayacağı.Hem |
env
|
dict; veya None ;
varsayılan değer: None Ortam değişkenleri sözlüğünü ayarlar. Hem |
execution_requirements
|
dict veya None ;
varsayılan değer None İşlemi planlamayla ilgili bilgiler. Faydalı anahtarlar için etiketlere bakın. |
input_manifests
|
sequence; veya None ;
varsayılan değer: None (Deneysel) giriş çalıştırma dosyaları meta verilerini ayarlar; genellikle çözümleme_komutu ile oluşturulurlar. |
exec_group
|
string; veya None ;
varsayılan değer: None İşlemi belirtilen yönetici grubunun yürütme platformunda çalıştırır. Hiçbiri belirtilmezse hedefin varsayılan yürütme platformu kullanılır. |
shadowed_action
|
İşlem;
varsayılan değer None İşlemi, belirtilen gölgelenen işlemin girişlerini ve işlemin girişler listesine ve ortamına eklenen ortamı kullanarak çalıştırır. İşlem ortamı, gölgelendirilen işlemin ortam değişkenlerinin üzerine yazabilir. Aksi takdirde yalnızca işlemin girişlerini ve belirtilen ortamı kullanır. |
resource_set
|
çağrılabilir; veya None ;
varsayılan olarak None Bu işlem yerel olarak çalıştırılırsa yürütme sırasındaki kaynak kullanımını tahmin etmek için kullanılan, bir kaynak kümesi sözlüğü döndüren geri çağırma işlevi. İşlev, iki konum bağımsız değişkenini kabul eder: OS adını temsil eden bir dize (ör. "osx") ve işleme yönelik giriş sayısını temsil eden bir tam sayı. Döndürülen sözlük, her biri kayan nokta veya tam sayı olabilen aşağıdaki girişleri içerebilir:
Bu parametre Geri çağırma üst düzey olmalıdır (lambda ve iç içe yerleştirilmiş işlevlere izin verilmez). |
toolchain
|
Etiket; veya string; veya None ;
varsayılan değer unbound Yürütülebilir dosyanın veya bu işlemde kullanılan araçların araç zinciri türü. İşlemin doğru yürütme platformunda yürütülebilmesi için parametrenin ayarlanması gerekir. Şu anda herhangi bir işlem yapmaz ancak gelecekteki Bazel sürümlerinde gerekli olacağından bir araç zinciri kullanıldığında ayarlanmasını öneririz. Bu işlemi oluşturan kuralın, "rule()" işlevinde bu araç zincirini tanımlaması gerektiğini unutmayın. Hem "toolchain" hem de "exec_group" parametreleri ayarlandığında "exec_group" kullanılır. "exec_group" tarafından aynı belirtilmediği durumlarda hata oluşur. |
run_shell
None
actions.run_shell(outputs, inputs=[], tools=unbound, arguments=[], mnemonic=None, command, progress_message=None, use_default_shell_env=False, env=None, execution_requirements=None, input_manifests=None, exec_group=None, shadowed_action=None, resource_set=None, toolchain=unbound)
Kabuk komutu çalıştıran bir işlem oluşturur. Kullanım örneğini inceleyin.
Parametreler
Parametre | Açıklama |
---|---|
outputs
|
sequence of Files;
gerekli İşlemin çıkış dosyalarının listesi. |
inputs
|
Dosya dizisi veya depset;
varsayılan değer [] İşlemin giriş dosyalarının listesi veya depset. |
tools
|
Dosya dizisi veya depset;
varsayılan olarak unbound İşlemin ihtiyaç duyduğu tüm araçların listesi veya depset. Araçlar, işlem için otomatik olarak kullanıma sunulan ek çalıştırma dosyalarına sahip girişlerdir. Liste, Files veya FilesToRunProvider örneklerini içerebilir. |
arguments
|
sequence;
varsayılan değer: [] İşlemin komut satırı bağımsız değişkenleri. Dizelerin veya actions.args() nesnelerinin listesi olmalıdır.Bazel, bu özellikteki öğeleri komuta bağımsız değişken olarak iletir. Komut,
|
mnemonic
|
dize; veya None ;
varsayılan değer None İşlemin tek kelimelik açıklaması (ör. CppCompile veya GoLink). |
command
|
string; dize dizisi veya
gerekli Yürütülecek kabuk komutu. Bu, bir dize (tercih edilen) veya dize (desteği sonlandırılmış) dizisi olabilir.
(Desteklenmiyor) Bazel, komutu yürütmek için genrules ile aynı kabuğu kullanır. |
progress_message
|
string; veya None ;
varsayılan değer: None Derleme sırasında kullanıcıya gösterilecek ilerleme mesajı. Örneğin, "foo.o oluşturmak için foo.cc dosyası derleniyor". Mesaj, sırasıyla etiket dizesi, ilk giriş veya çıkış yolu ile değiştirilen %{label} , %{input} veya %{output} kalıpları içerebilir. Statik dizeler daha verimli olduğundan bu dizeler yerine kalıplar kullanmayı tercih edin.
|
use_default_shell_env
|
varsayılan değer False İşlemin, işletim sistemine bağlı birkaç değişkenden ve --action_env aracılığıyla ayarlanan değişkenlerden oluşan varsayılan kabuk ortamını kullanıp kullanmayacağı.Hem |
env
|
dict veya None ;
varsayılan değer None Ortam değişkenleri sözlüğünü ayarlar. Hem |
execution_requirements
|
dict veya None ;
varsayılan değer None İşlemi planlamayla ilgili bilgiler. Faydalı anahtarlar için etiketlere bakın. |
input_manifests
|
sequence; veya None ;
varsayılan değer None (Deneysel) giriş çalıştırma dosyası meta verilerini ayarlar; bunlar genellikle resolve_command tarafından oluşturulur. |
exec_group
|
dize veya None ;
varsayılan değer None İşlemi, belirtilen yürütme grubunun yürütme platformunda çalıştırır. Hiçbiri belirtilmezse hedefin varsayılan yürütme platformu kullanılır. |
shadowed_action
|
İşlem;
varsayılan değer None İşlemi, belirtilen gölgelenen işlemin, işlemin girişler listesine eklenen keşfedilen girişlerini kullanarak çalıştırır. Yoksa yalnızca işlemin girişlerini kullanır. |
resource_set
|
callable; veya None ;
varsayılan değer None Yerel olarak çalıştırıldığında kaynak kullanımını tahmin etmek için kullanılan bir geri çağırma işlevi. ctx.actions.run() adresine göz atın.
|
toolchain
|
Etiket; veya string; veya None ;
varsayılan değer unbound Yürütülebilir dosyanın veya bu işlemde kullanılan araçların araç zinciri türü. İşlemin doğru yürütme platformunda yürütülebilmesi için parametrenin ayarlanması gerekir. Şu anda herhangi bir işlem yapmaz ancak gelecekteki Bazel sürümlerinde gerekli olacağından bir araç zinciri kullanıldığında ayarlanmasını öneririz. Bu işlemi oluşturan kuralın, "rule()" işlevinde bu araç zincirini tanımlaması gerektiğini unutmayın. "toolchain" ve "exec_group" parametrelerinin ikisi de ayarlandığında "exec_group" kullanılır. "exec_group" aynı araç setini belirtmezse hata oluşur. |
sembolik bağlantı
None
actions.symlink(output, target_file=None, target_path=None, is_executable=False, progress_message=None)
Dosya sisteminde sembolik bağlantı yazan bir işlem oluşturur.Bu işlev, target_file
veya target_path
değerlerinden tam olarak biri belirtilerek çağrılmalıdır.
target_file
kullanırken output
'u declare_file()
veya declare_directory()
ile tanımlayın ve target_file
türünü eşleyin. Bu işlem, sembolik bağlantının target_file
'e işaret etmesini sağlar. Sembolik bağlantının hedefi veya içeriği her değiştiğinde Bazel bu işlemin çıkışını geçersiz kılar.
Aksi takdirde, target_path
kullanırken output
'ü declare_symlink()
ile tanımlayın. Bu durumda, sembolik bağlantı target_path
'ü işaret eder. Bazel, sembolik bağlantıyı hiçbir zaman çözümlemez ve bu işlemin çıkışı yalnızca sembolik bağlantının metin içeriği (yani readlink()
değeri) değiştiğinde geçersiz kılınır. Bu, özellikle, sallanan bir sembolik bağlantı oluşturmak için kullanılabilir.
Parametreler
Parametre | Açıklama |
---|---|
output
|
required Bu işlemin çıkışı. |
target_file
|
File (Dosya); veya None ;
varsayılan değer: None Çıkış sembolik bağlantısının işaret edeceği dosya. |
target_path
|
dize veya None ;
varsayılan değer None Çıkış sembolik bağlantısının işaret edeceği tam yol. Normalleştirme veya başka bir işlem uygulanmaz. |
is_executable
|
varsayılan değer False Yalnızca target_path ile değil, target_file ile kullanılabilir. True (doğru) ise, işlem yürütüldüğünde, yürütülebilir olduğunu onaylamak için target_file yolunun yolu kontrol edilir ve değilse bir hata bildirilir. is_executable değerinin False olarak ayarlanması, hedefin yürütülemeyeceği anlamına gelmez. Yalnızca doğrulama yapılmadığı anlamına gelir.Yapım sırasında boş sembolik bağlantılar bulunmayabileceği için bu özellik |
progress_message
|
string; veya None ;
varsayılan değer: None Derleme sırasında kullanıcıya gösterilecek ilerleme mesajı. |
template_dict
TemplateDict actions.template_dict()Bellek açısından verimli şablon genişletmesi için bir TemplateDict nesnesi döndürür.
write
None
actions.write(output, content, is_executable=False)
Dosya yazma işlemi oluşturur. İşlem yürütüldüğünde verilen içeriği bir dosyaya yazar. Bu, analiz aşamasında bulunan bilgileri kullanarak dosya oluşturmak için kullanılır. Dosya büyükse ve çok fazla statik içerik içeriyorsa expand_template
kullanmayı düşünebilirsiniz.
Parametreler
Parametre | Açıklama |
---|---|
output
|
required Çıkış dosyası. |
content
|
string; veya Args;
gerekli dosyanın içeriği hakkında daha fazla bilgi edinin. Dize veya actions.args() nesnesi olabilir.
|
is_executable
|
varsayılan değer False Çıkış dosyasının yürütülebilir olup olmayacağı. |