İşlemler oluşturmak için işlevler sağlayan modül. ctx.actions
simgesini kullanarak bu modüle erişin.
Üyeler
- args
- declare_directory
- declare_file
- declare_symlink
- do_nothing
- expand_template
- run
- run_shell
- symlink
- template_dict
- write
args
Args actions.args()
declare_directory
File actions.declare_directory(filename, *, sibling=None)
Args.add_all()
ile bir işlem komutunda genişletilebilir. declare_directory'nin genişletilmiş içeriklerinde yalnızca normal dosyalar ve dizinler olabilir.
Parametreler
Parametre | Açıklama |
---|---|
filename
|
zorunlu Kardeş sağlanmadıysa yeni dizinin yolu, mevcut pakete göre. Aksi takdirde, dosya için temel bir ad (kardeş, bir dizini tanımlar). |
sibling
|
Dosya; veya None ;
varsayılan değer None Yeni bildirilen dizinle aynı dizinde bulunan bir dosya. Dosya, mevcut pakette olmalıdır. |
declare_file
File actions.declare_file(filename, *, sibling=None)
sibling
belirtilmemişse dosya adı paket dizinine göre belirlenir. Aksi takdirde dosya, sibling
ile aynı dizindedir. Dosyalar, geçerli paketin dışında oluşturulamaz.Bir dosyayı beyan etmenin yanı sıra dosyayı yayınlayan bir işlem de oluşturmanız gerektiğini unutmayın. Bu işlemi oluşturmak için döndürülen File
nesnesinin işlemin oluşturma işlevine iletilmesi gerekir.
Önceden bildirilmiş çıkış dosyalarının bu işlev kullanılarak bildirilmesi gerekmediğini (ve bildirilemeyeceğini) unutmayın. Bunun yerine, File
nesnelerini ctx.outputs
adresinden edinebilirsiniz. Kullanım örneğini inceleyin.
Parametreler
Parametre | Açıklama |
---|---|
filename
|
gerekli Kardeş öğe sağlanmadıysa yeni dosyanın yolu (mevcut pakete göre). Aksi takdirde, dosyanın temel adı ("sibling" bir dizini belirler). |
sibling
|
Dosya; veya None ;
varsayılan değer None Yeni oluşturulan dosya ile aynı dizinde bulunan bir dosya. Dosya, mevcut pakette olmalıdır. |
declare_symlink
File actions.declare_symlink(filename, *, sibling=None)
Parametreler
Parametre | Açıklama |
---|---|
filename
|
gerekli Kardeş sağlanmazsa yeni sembolik bağlantının yolu, mevcut pakete göre. Aksi takdirde, dosya için temel bir ad (kardeş, bir dizini tanımlar). |
sibling
|
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=[])
Parametreler
Parametre | Açıklama |
---|---|
mnemonic
|
zorunlu İşlemin tek kelimelik açıklaması (ör. CppCompile veya GoLink). |
inputs
|
sequence of Files; or depset;
default is [] List of the input files of the action. |
expand_template
None
actions.expand_template(template, output, substitutions={}, is_executable=False, computed_substitutions=unbound)
substitutions
sözlüğü kullanılarak ve değiştirmelerin belirtildiği sırayla değiştirilir. Sözlüğün bir anahtarı şablonda (veya önceki bir değiştirme sonucunda) her göründüğünde, 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 (ör. {KEY}
). Kullanım örneğine bakın.
Parametreler
Parametre | Açıklama |
---|---|
template
|
zorunlu UTF-8 olarak kodlanmış bir metin dosyası olan şablon dosyası. |
output
|
zorunlu UTF-8 olarak kodlanmış metin dosyası olan çıkış dosyası. |
substitutions
|
varsayılan değer {} Şablon genişletilirken yapılacak değiştirmeler. |
is_executable
|
Varsayılan değer False 'dir. Çıkış dosyasının yürütülebilir olup olmayacağı. |
computed_substitutions
|
TemplateDict;
varsayılan değer unbound Şablon genişletilirken yapılacak değiştirmeler. |
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)
Parametreler
Parametre | Açıklama |
---|---|
outputs
|
Dosyaların sırası;
gerekli İşlemin çıkış dosyalarının listesi. |
inputs
|
sequence of Files; or depset;
default is [] List or depset of the input files of the action. |
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 çıktılarından biri), işlemin yürütülmesi sırasında kullanılmayan giriş dosyalarının listesine karşılık gelir. Bu dosyalarda yapılan değişiklikler, işlemin çıkışlarını hiçbir şekilde etkilememelidir. |
executable
|
File; veya string; veya FilesToRunProvider;
gerekli Eylem tarafından çağrılacak yürütülebilir dosya. |
tools
|
sequence veya depset;
varsayılan değer unbound İşlem için gereken tüm araçların listesi veya depset'i. Araçlar, ek çalışma dosyaları içeren ve işleme otomatik olarak sunulan girişlerdir. Liste sağlandığında, Dosyalar, FilesToRunProvider örnekleri veya Dosyalar'ın bağımlılık kümelerinden oluşan heterojen bir koleksiyon olabilir. Doğrudan listede bulunan ve ctx.executable'dan gelen dosyaların runfile'ları otomatik olarak eklenir. Bir depset sağlandığında yalnızca Dosyalar içermelidir. Her iki durumda da, bağımlılık kümelerindeki dosyalar, runfiles için ctx.executable ile çapraz referanslı değildir. |
arguments
|
sequence;
default is [] Command line arguments of the action. Dize listesi veya actions.args() nesnesi olmalıdır.
|
mnemonic
|
string; veya None ;
varsayılan değer None İşlemin tek kelimelik açıklaması (ör. CppCompile veya GoLink). |
progress_message
|
string; veya None ;
varsayılan değer None Derleme sırasında kullanıcıya gösterilecek ilerleme mesajı (ör. "foo.cc, foo.o oluşturmak için derleniyor"). İleti; sırasıyla etiket dizesi, ilk giriş veya çıkış yolu ile değiştirilen %{label} , %{input} ya da %{output} kalıplarını içerebilir. Daha verimli oldukları için statik dizeler yerine kalıpları kullanmayı tercih edin.
|
use_default_shell_env
|
Varsayılan değer False İşlemin, --action_env aracılığıyla ayarlanan değişkenlerin yanı sıra işletim sistemine bağlı birkaç değişkenden oluşan varsayılan kabuk ortamını kullanıp kullanmayacağı.Hem |
env
|
dict; veya None ;
varsayılan değer None Ortam değişkenlerinin sözlüğünü ayarlar. Hem |
execution_requirements
|
dict veya None ;
varsayılan değer None İşlemi planlama bilgileri. Faydalı anahtarlar için etiketler bölümüne bakın. |
input_manifests
|
sequence; veya None ;
varsayılan değer None (Deneysel) Giriş çalıştırma dosyaları meta verilerini ayarlar. Bunlar genellikle resolve_command tarafından oluşturulur. |
exec_group
|
string; veya None ;
varsayılan değer None İşlemi, belirtilen exec grubunun yürütme platformunda çalıştırır. Hiçbiri yoksa hedefin varsayılan yürütme platformunu kullanır. |
shadowed_action
|
İşlem;
varsayılan değer None İşlemi, verilen gölgelenmiş işlemin girişleri ve işlemin girişler listesine ve ortama eklenen ortamı kullanarak çalıştırır. İşlem ortamı, gölgelenen işlemin ortam değişkenlerinin üzerine yazabilir. Yoksa yalnızca işlemin girişlerini ve verilen ortamı kullanır. |
resource_set
|
callable; veya None ;
default is None Bu işlem yerel olarak çalıştırılırsa yürütme sırasında kaynak kullanımını tahmin etmek için kullanılan, kaynak kümesi sözlüğü döndüren bir geri çağırma işlevi. İşlev iki konumsal bağımsız değişken kabul eder: bir işletim sistemi 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 aşağıdaki girişleri içerebilir. Bu girişlerin her biri float veya int olabilir:
Bu parametre Geri çağırma üst düzey olmalıdır (lambda ve iç içe geçmiş işlevlere izin verilmez). |
toolchain
|
Etiket veya dize veya None ;
varsayılan değer unbound 'dir. Bu işlemde kullanılan yürütülebilir dosyanın veya araçların araç zinciri türü. Parametre, işlemin doğru yürütme platformunda yürütülmesini sağlayacak şekilde ayarlanmalıdır. Şu anda herhangi bir işlem yapılmamaktadır ancak gelecekteki Bazel sürümlerinde gerekli olacağı için bir araç zinciri kullanıldığında bu ayarın belirlenmesini ö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` aynı değeri belirtmediğinde 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)
Parametreler
Parametre | Açıklama |
---|---|
outputs
|
Dosyaların sırası;
gerekli İşlemin çıkış dosyalarının listesi. |
inputs
|
sequence of Files; or depset;
default is [] List or depset of the input files of the action. |
tools
|
File'ların sequence'ı veya depset;
varsayılan değer unbound İşlem için gereken tüm araçların listesi veya depset'i. Araçlar, ek çalışma dosyaları içeren ve işleme otomatik olarak sunulan girişlerdir. Liste, Files veya FilesToRunProvider örneklerini içerebilir. |
arguments
|
sequence;
default is [] Command line arguments of the action. Dize listesi veya actions.args() nesnesi olmalıdır.Bazel, bu özellikteki öğeleri komuta bağımsız değişken olarak iletir.Komut,
|
mnemonic
|
string; veya None ;
varsayılan değer None İşlemin tek kelimelik açıklaması (ör. CppCompile veya GoLink). |
command
|
string veya string dizisi sequence;
zorunlu Yürütülecek kabuk komutu. Bu, dize (tercih edilen) veya dize dizisi (kullanımdan kaldırıldı) olabilir.
(Kullanımdan kaldırıldı) 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ı (ör. "foo.cc, foo.o oluşturmak için derleniyor"). İleti; sırasıyla etiket dizesi, ilk giriş veya çıkış yolu ile değiştirilen %{label} , %{input} ya da %{output} kalıplarını içerebilir. Daha verimli oldukları için statik dizeler yerine kalıpları kullanmayı tercih edin.
|
use_default_shell_env
|
Varsayılan değer False İşlemin, --action_env aracılığıyla ayarlanan değişkenlerin yanı sıra işletim sistemine bağlı birkaç değişkenden oluşan varsayılan kabuk ortamını kullanıp kullanmayacağı.Hem |
env
|
dict; veya None ;
varsayılan değer None Ortam değişkenlerinin sözlüğünü ayarlar. Hem |
execution_requirements
|
dict veya None ;
varsayılan değer None İşlemi planlama bilgileri. Faydalı anahtarlar için etiketler bölümüne bakın. |
input_manifests
|
sequence; veya None ;
varsayılan değer None (Deneysel) Giriş çalıştırma dosyaları meta verilerini ayarlar. Bunlar genellikle resolve_command tarafından oluşturulur. |
exec_group
|
string; veya None ;
varsayılan değer None İşlemi, belirtilen exec grubunun yürütme platformunda çalıştırır. Hiçbiri yoksa hedefin varsayılan yürütme platformunu kullanır. |
shadowed_action
|
İşlem;
varsayılan değer None İşlemi, işlemin girişler listesine eklenen, gölgelenen işlemin keşfedilen girişlerini kullanarak çalıştırır. Yoksa yalnızca işlemin girişlerini kullanır. |
resource_set
|
callable; veya None ;
default is None Yerel olarak çalıştırılırsa kaynak kullanımını tahmin etmek için geri çağırma işlevi. ctx.actions.run() sayfasına göz atın.
|
toolchain
|
Etiket veya dize veya None ;
varsayılan değer unbound 'dir. Bu işlemde kullanılan yürütülebilir dosyanın veya araçların araç zinciri türü. Parametre, işlemin doğru yürütme platformunda yürütülmesini sağlayacak şekilde ayarlanmalıdır. Şu anda herhangi bir işlem yapılmamaktadır ancak gelecekteki Bazel sürümlerinde gerekli olacağı için bir araç zinciri kullanıldığında bu ayarın belirlenmesini ö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" aynı araç zincirini belirtmiyorsa hata oluşur. |
sembolik bağlantı
None
actions.symlink(output, target_file=None, target_path=None, is_executable=False, progress_message=None)
Bu işlev, tam olarak bir target_file
veya target_path
belirtilerek çağrılmalıdır.
target_file
kullandığınızda declare_file()
veya declare_directory()
ile output
öğesini bildirin ve target_file
türüyle eşleştirin. Bu işlem, sembolik bağlantının target_file
konumunu işaret etmesini sağlar. Bazel, sembolik bağlantının hedefi veya içeriği her değiştiğinde bu işlemin çıkışını geçersiz kılar.
Aksi takdirde, target_path
kullanırken output
öğesini declare_symlink()
ile bildirin. Bu durumda, sembolik bağlantı target_path
öğesini gösterir. Bazel, sembolik bağlantıyı hiçbir zaman çözmez 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 özellik özellikle askıda kalan sembolik bağlantı oluşturmak için kullanılabilir.
Parametreler
Parametre | Açıklama |
---|---|
output
|
required Bu işlemin çıktısı. |
target_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_file ile kullanılabilir, target_path ile kullanılamaz. Doğruysa işlem yürütüldüğünde target_file 'nın yolu yürütülebilir olup olmadığını doğrulamak için kontrol edilir ve yürütülebilir değilse hata bildirilir. is_executable değerinin False olarak ayarlanması, hedefin yürütülemez olduğu anlamına gelmez. Yalnızca doğrulama yapılmadığı anlamına gelir.Bu özellik, derleme sırasında askıda kalan sembolik bağlantılar mevcut olmayabileceğinden |
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()
yardım et
None
actions.write(output, content, is_executable=False)
expand_template
kullanmayı düşünebilirsiniz.
Parametreler
Parametre | Açıklama |
---|---|
output
|
required Çıkış dosyası. |
content
|
string veya Args;
required the contents of the file. Dize veya actions.args() nesnesi olabilir.
|
is_executable
|
Varsayılan değer False 'dir. Çıkış dosyasının yürütülebilir olup olmayacağı. |