İşlem oluşturmak için işlevler sağlayan modül. Bu modüle ctx.actions
adresinden erişebilirsiniz.
Üyeler
- args
- declare_directory
- declare_file
- declare_symlink
- do_nothing
- expand_template
- koşu
- run_shell
- symlink
- template_dict
- write
bağımsız değişkenler
Args actions.args()
declare_directory
File actions.declare_directory(filename, *, sibling=None)
Args.add_all()
kullanılarak genişletilebilir. declare_directory işlevinin 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
|
Dosya veya None ;
varsayılan olarak None 'dır.Yeni bildirilen dizinle aynı dizinde bulunan bir dosyadır. Dosya, mevcut pakette olmalıdır. |
declare_file
File actions.declare_file(filename, *, sibling=None)
sibling
belirtilmezse dosya adı, paket dizine göreli olur. Aksi takdirde dosya, sibling
ile aynı dizinde olur. Dosyalar, geçerli paketin dışında oluşturulamaz.Bir dosyayı beyan etmenin yanı sıra dosyayı yayınlayan bir işlem de ayrı olarak oluşturmanız gerektiğini unutmayın. Bu işlemi oluşturmak için döndürülen File
nesnesini işlemin oluşturma işlevine iletmeniz gerekir.
Önceden tanımlanmış çıkış dosyalarının bu işlev kullanılarak tanımlanması gerekmez (ve tanımlanamaz). Bunun yerine, File
nesnelerini ctx.outputs
adresinden alabilirsiniz. Kullanım örneğini inceleyin.
Parametreler
Parametre | Açıklama |
---|---|
filename
|
zorunlu "Kardeş" sağlanmazsa yeni dosyanın mevcut pakete göre yolu. Aksi takdirde, bir dosyanın temel adı ("kardeş" bir dizini belirler). |
sibling
|
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)
Parametreler
Parametre | Açıklama |
---|---|
filename
|
zorunlu "Kardeş" sağlanmazsa yeni sembolik bağlantının mevcut pakete göre yolu. Aksi takdirde, bir dosyanın temel adı ("kardeş" bir dizini tanımlar). |
sibling
|
Dosya veya None ;
varsayılan değer None Yeni tanımlanan sembolik bağlantıyla aynı dizinde bulunan bir dosya. |
do_nothing
None
actions.do_nothing(mnemonic, inputs=[])
Parametreler
Parametre | Açıklama |
---|---|
mnemonic
|
required İşlemin tek kelimelik açıklaması (ör. CppCompile veya GoLink). |
inputs
|
Dosya dizisi veya depset;
varsayılan değer [] İşlemin giriş dosyalarının listesi. |
expand_template
None
actions.expand_template(template, output, substitutions={}, is_executable=False, computed_substitutions=unbound)
substitutions
sözlüğü kullanılarak, belirtilen sırayla değiştirilir. Ş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öşeli parantez 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ış bir metin dosyası olan çıkış dosyası. |
substitutions
|
varsayılan değer {} Şablon genişletilirken yapılacak ikameler. |
is_executable
|
varsayılan değer False şeklindedirÇı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)
Parametreler
Parametre | Açıklama |
---|---|
outputs
|
Dosya dizisi;
zorunlu İşlemin çıkış dosyalarının listesi. |
inputs
|
Dosya dizisi veya depset;
varsayılan değer [] İşlemin giriş dosyalarının listesi veya depset. |
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
|
Dosya; veya dize; veya FilesToRunProvider;
zorunlu İşlem tarafından çağrılacak yürütülebilir dosya. |
tools
|
sequence; veya depset;
varsayılan olarak unbound şeklindedirİşlemin ihtiyaç duyduğu tüm araçları listeleyin veya indirin. 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 dosya depsetleri olabilir. Doğrudan listede bulunan ve ctx.executable kaynağından gelen dosyaların çalıştırma dosyaları otomatik olarak eklenir. Sağlanan depset yalnızca Dosya 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 olarak [] İşlemin komut satırı bağımsız değişkenleridir. Dizelerin veya actions.args() nesnelerinin listesi olmalıdır.
|
mnemonic
|
dize; veya None ;
varsayılan değer None 'dirİşlemin tek kelimelik bir açıklamasıdır (ör. 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"). 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ş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 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ölgelendirilmiş işlemin girişlerini ve işlemin giriş listesine ve ortamına eklenen ortamı kullanarak çalıştırır. İşlem ortamı, gölgelendirilen işlemin ortam değişkenlerinin üzerine yazabilir. Yoksa 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 işlevlere izin verilmez). |
toolchain
|
Etiket; veya dize; veya None ;
varsayılan değer unbound Bu işlemde kullanılan yürütülebilir dosyanın veya araçların araç zinciri türü. İşlemin doğru yürütme platformunda yürütülebilmesi için parametre ayarlanmalıdır. Şu anda herhangi bir işlem yapmaz ancak gelecekteki Bazel sürümlerinde gerekli olacağından, bir araç zinciri kullanıldığında bunu ayarlamanız önerilir. 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ısını belirtmezse 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
|
sequence/Files;
required İş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şleme otomatik olarak 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. Dize veya actions.args() nesneleri 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
|
dize veya dize dizisi;
zorunlu Yürütülecek Shell komutu. Bu, bir dize (tercih edilir) veya dize dizisi (kullanımdan kaldırılmıştır) olabilir.
(Kullanımdan kaldırıldı) Bazel, komutu yürütmek için genrules ile aynı kabuğu kullanır. |
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 yolu ile değiştirilen %{label} , %{input} veya %{output} kalıpları içerebilir. Statik dizeler yerine daha verimli olan kalıpları 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 olarak None şeklindedir(Deneysel), giriş çalıştırma dosyaları meta verilerini ayarlar. Bu meta veriler genellikle çözümleme_komutu 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, işlemin girişler listesine eklenen belirli 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 ;
varsayılan değer None Yerel olarak çalıştırıldığında kaynak kullanımını tahmin etmek için bir geri çağırma işlevi. ctx.actions.run() adresine göz atın.
|
toolchain
|
Etiket; veya dize; veya None ;
varsayılan değer unbound Bu işlemde kullanılan yürütülebilir dosyanın veya araçların araç zinciri türü. İşlemin doğru yürütme platformunda yürütülebilmesi için parametre ayarlanmalıdır. Şu anda herhangi bir işlem yapmaz ancak gelecekteki Bazel sürümlerinde gerekli olacağından, bir araç zinciri kullanıldığında bunu ayarlamanız önerilir. 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ç setini belirtmezse 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, target_file
veya target_path
özelliklerinden tam olarak biri belirtilmiş şekilde ç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. Bazel, sembolik bağlantının hedefi veya içeriği değiştiğinde bu işlemin çıktısını geçersiz kılar.
Aksi takdirde, target_path
kullanırken output
'ü declare_symlink()
ile belirtin. Bu durumda, sembolik bağlantı target_path
'ü işaret eder. 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. Özellikle, boş bir sembolik bağlantı oluşturmak için kullanılabilir.
Parametreler
Parametre | Açıklama |
---|---|
output
|
required Bu işlemin çıkışı. |
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ğerdir False Yalnızca target_file ile kullanılabilir, target_path ile kullanılamaz. Doğru ise işlem yürütüldüğünde target_file 'nin yürütülebilir olup olmadığını doğrulamak için yolu kontrol edilir ve yürütülebilir değilse 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
|
dize veya None ;
varsayılan değer None Derleme sırasında kullanıcıya gösterilecek ilerleme mesajı. |
template_dict
TemplateDict actions.template_dict()
write
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;
gerekli dosyanın içeriğini. Dize veya actions.args() nesnesi olabilir.
|
is_executable
|
varsayılan değer False Çıkış dosyasının yürütülebilir olup olmayacağı. |