ctx.actions
kullanarak erişebilirsiniz.
Üyeler
- args
- declare_directory
- declare_file
- declare_symlink
- do_nothing
- expand_template
- run
- run_shell
- sembolik bağlantı
- template_dict
- yazma
args
Args actions.args()Bellek açısından verimli komut satırları 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 en boy özelliğinin geçerli pakette, verilen adla 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 komutuyla genişletilebilir.
Parametreler
Parametre | Açıklama |
---|---|
filename
|
gerekli "Eşdüzey" sağlanmamışsa yeni dizinin geçerli pakete göre yolu. Aksi takdirde, dosyanın temel adı ("sibling" bir dizini tanımlar). |
sibling
|
File; or None ;
default = NoneYeni 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 en boy özelliğinin belirtilen dosya adına sahip bir dosya oluşturduğunu belirtir.
sibling
belirtilmezse dosya adı paket diziniyle görelidir, aksi takdirde dosya sibling
ile aynı dizinde olur. Dosyalar, mevcut paketin dışında oluşturulamaz.Bir dosyayı bildirmenizin yanı sıra, dosyayı yayınlayan bir işlemi de ayrıca oluşturmanız gerektiğini unutmayın. Bu işlemi oluşturmak, döndürülen File
nesnesinin işlemin oluşturma işlevine geçirilmesini gerektirir.
Önceden tanımlanmış çıkış dosyalarının bu işlev kullanılarak bildirilmesine gerek olmadığını (ve yapılamayacağını) unutmayın. Bunun yerine, File
nesnelerini ctx.outputs
üzerinden alabilirsiniz. Kullanım örneğini inceleyin.
Parametreler
Parametre | Açıklama |
---|---|
filename
|
gerekli "Eşdüzey" sağlanmamışsa yeni dosyanın, geçerli pakete göre yolu. Aksi takdirde, dosyanın temel adı ("eşdüzey" bir dizini belirler). |
sibling
|
File; or None ;
varsayılan = YokYeni oluşturulan dosyayla aynı dizinde bulunan bir dosya. Dosya geçerli pakette olmalıdır. |
declare_symlink
File actions.declare_symlink(filename, *, sibling=None)
Deneysel. Bu parametre deneme amaçlıdır ve herhangi bir zamanda değiştirilebilir. Lütfen bu özelliğe güvenmeyin. --experimental_allow_unresolved_symlinks
ayarlanarak deneysel olarak etkinleştirilebilir.
Kuralın veya özelliğin geçerli pakette verilen adla sembolik bir 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 değiştirmez ve tamamen korumalı alanlara ya da uzak yürütücülere aktarır.
Parametreler
Parametre | Açıklama |
---|---|
filename
|
gerekli "Eşdüzey" sağlanmamışsa yeni sembolik bağlantının yolu, geçerli pakete göre belirlenir. Aksi takdirde, dosyanın temel adı ("sibling" bir dizini tanımlar). |
sibling
|
File; or None ;
varsayılan = YokYeni bildirilen sembolik bağlantıyla aynı dizinde bulunan bir dosya. |
do_nothing
None actions.do_nothing(mnemonic, inputs=[])Komut çalıştırmayan veya herhangi bir çıkış üretmeyen ancak "extra işlemler" eklemek için faydalı olan boş bir eylem oluşturur.
Parametreler
Parametre | Açıklama |
---|---|
mnemonic
|
gerekli İşlemin tek kelimelik bir açıklaması (örneğin, CppCompile veya GoLink). |
inputs
|
sequence of Files; or depset ;
default = []İş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ırada
substitutions
sözlüğü kullanılarak değiştirilir. Sözlüğün bir anahtarı şablonda (veya önceki bir değişikliğin sonucunda) 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 (örneğin, {KEY}
). Kullanım örneğini inceleyin.
Parametreler
Parametre | Açıklama |
---|---|
template
|
gerekli UTF-8 olarak kodlanmış metin dosyası olan şablon dosyası. |
output
|
gerekli UTF-8 olarak kodlanmış metin dosyası olan çıkış dosyası. |
substitutions
|
default = {} Şablonu genişletirken yapılacak değişiklikler. |
is_executable
|
default = False Çıkış dosyasının yürütülebilir olup olmayacağı. |
computed_substitutions
|
TemplateDict ;
varsayılan = sınırsızDeneysel. Bu parametre deneme amaçlıdır ve herhangi bir zamanda değiştirilebilir. Lütfen bu özelliğe güvenmeyin. Bu işlev, --+experimental_lazy_template_expansion Deneysel: Şablonu genişletirken yapılacak değişiklikler |
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=None)Yürütülebilir bir dosyayı çalıştıran bir işlem oluşturur. Kullanım örneğini inceleyin.
Parametreler
Parametre | Açıklama |
---|---|
outputs
|
sequence of Files ;
zorunluİşlemin çıkış dosyalarının listesi. |
inputs
|
sequence of Files; or depset ;
default = []İşlemin giriş dosyalarını listeleyin veya kaldırın. |
unused_inputs_list
|
File; or None ;
varsayılan = Yokİş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 yürütülmesi sırasında kullanılmayan giriş dosyaları listesine karşılık gelir. Bu dosyalardaki değişiklikler, işlemin sonuçlarını hiçbir şekilde etkilememelidir. |
executable
|
File; or string; or FilesToRunProvider ;
gerekliİşlem tarafından çağrılacak yürütülebilir dosya. |
tools
|
sequence; or depset ;
varsayılan = sınırsızİşlem için gereken tüm araçları listeleyin veya kaldırın. Araçlar, işlem için otomatik olarak kullanıma sunulan ek çalıştırma dosyaları içeren girişlerdir. Bir liste sağlandığında Files, FilesToRunProvider örneklerinden veya Files'ın alt kümelerinden oluşan heterojen bir koleksiyon olabilir. Doğrudan listede bulunan ve ctx.executable dosyasından gelen dosyaların çalıştırma dosyaları otomatik olarak eklenir. Bir depset sağlandığında yalnızca Dosyalar içermelidir. Her iki durumda da, işletim dosyaları için ctx.executable ile çapraz başvuru yapılmaz. |
arguments
|
sequence ;
default = []İşlemin komut satırı bağımsız değişkenleri. Dizelerden veya actions.args() nesnelerinden oluşan bir liste olmalıdır.
|
mnemonic
|
string; or None ;
varsayılan = Yokİşlemin tek kelimelik bir açıklaması, örneğin CppCompile veya GoLink. |
progress_message
|
string; or None ;
varsayılan = YokDerleme sırasında kullanıcıya gösterilecek ilerleme mesajı. Örneğin, "foo.o oluşturmak için foo.cc derleniyor". İleti; etiket dizesi, ilk giriş veya çıkış yolu ile değiştirilecek %{label} , %{input} veya %{output} kalıpları içerebilir. Statik dizeler daha etkili olduğundan statik dizeler yerine kalıp kullanmayı tercih edin.
|
use_default_shell_env
|
default = False İşlemin yerleşik kabuk ortamını kullanıp kullanmayacağını belirtir. |
env
|
dict; or None ;
default = NoneOrtam değişkenlerinin sözlüğünü ayarlar. |
execution_requirements
|
dict; or None ;
varsayılan = Yokİşlemi planlamayla ilgili bilgi. Kullanışlı anahtarlar için etiketlere bakın. |
input_manifests
|
sequence; or None ;
varsayılan = Yok(Deneysel), giriş çalıştırma dosyaları meta verilerini ayarlar. Bunlar genellikleresolve_command tarafından oluşturulur. |
exec_group
|
string; or None ;
default = Noneİşlemi belirtilen yönetici grubunun yürütme platformunda çalıştırır. Yoksa hedefin varsayılan yürütme platformunu kullanır. |
shadowed_action
|
Action ;
default = NoneBelirtilen gölgelenen işlemin girişlerini ve ortamın işlemin giriş listesine ve ortamına eklenen ortamını kullanarak işlemi çalıştırır. İşlem ortamı, gölgelendirilen işlemin ortam değişkenlerinin herhangi birinin üzerine yazabilir. Yoksa yalnızca işlemin girişlerini ve belirtilen ortamı kullanır. |
resource_set
|
callable; or None ;
varsayılan = YokBu işlem yerel olarak çalıştırıldığında, yürütme sırasında kaynak kullanımını tahmin etmek için kullanılan bir kaynak grubu sözlüğü döndüren geri çağırma işlevi. İşlev iki konumsal bağımsız değişkeni kabul eder: OS adını temsil eden bir dize (ör. "osx") ve işlem girdilerinin sayısını temsil eden bir tam sayı. Döndürülen sözlük şu girişleri içerebilir ve bunların her biri bir float veya int olabilir:
Bu parametre Geri çağırma üst düzey olmalıdır (lambda ve iç içe işlevlere izin verilmez). |
toolchain
|
Label; or string; or None ;
varsayılan = YokYü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. Bu seçenek şu anda kullanılamıyor. Ancak gelecekteki Bazel sürümlerinde gerekli olacağından bir araç zinciri kullanıldığında bu yöntemi ayarlamanızı öneririz. Bu işlemi oluşturan kuralın bu araç zincirini, "rule()" işlevinin içinde tanımlaması gerektiğini unutmayın. "araç zinciri" ve "exec_group" parametrelerinin ikisi de ayarlandığında "exec_group" kullanılır. "exec_group" aynı değeri belirtmezse bir hata verilir. |
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=None)Kabuk komutu çalıştıran bir işlem oluşturur. Kullanım örneğini inceleyin.
Parametreler
Parametre | Açıklama |
---|---|
outputs
|
sequence of Files ;
zorunluİşlemin çıkış dosyalarının listesi. |
inputs
|
sequence of Files; or depset ;
default = []İşlemin giriş dosyalarını listeleyin veya kaldırın. |
tools
|
sequence of Files; or depset ;
varsayılan = sınırsızİşlem için gereken tüm araçları listeleyin veya kaldırın. Araçlar, işlem için otomatik olarak kullanıma sunulan ek çalıştırma dosyaları içeren girişlerdir. Liste, Files veya FilesToRunProvider örneklerini içerebilir. |
arguments
|
sequence ;
default = []İşlemin komut satırı bağımsız değişkenleri. Dizelerden veya actions.args() nesnelerinden oluşan bir liste olmalıdır.Bazel, bu özellikteki öğeleri komuta bağımsız değişkenler olarak aktarır.Komut, bu bağımsız değişkenlere
|
mnemonic
|
string; or None ;
varsayılan = Yokİşlemin tek kelimelik bir açıklaması, örneğin CppCompile veya GoLink. |
command
|
string; or sequence of strings ;
yürütülmesi gerekirkabuk komutu. Bu, bir dize (tercih edilen) veya bir dize dizisi (kullanımdan kaldırıldı) olabilir.
(Kullanımdan kaldırıldı) Bazel, komutu yürütmek için Genrules için kullandığı kabuğu kullanır. |
progress_message
|
string; or None ;
varsayılan = YokDerleme sırasında kullanıcıya gösterilecek ilerleme mesajı. Örneğin, "foo.o oluşturmak için foo.cc derleniyor". İleti; etiket dizesi, ilk giriş veya çıkış yolu ile değiştirilecek %{label} , %{input} veya %{output} kalıpları içerebilir. Statik dizeler daha etkili olduğundan statik dizeler yerine kalıp kullanmayı tercih edin.
|
use_default_shell_env
|
default = False İşlemin yerleşik kabuk ortamını kullanıp kullanmayacağını belirtir. |
env
|
dict; or None ;
default = NoneOrtam değişkenlerinin sözlüğünü ayarlar. |
execution_requirements
|
dict; or None ;
varsayılan = Yokİşlemi planlamayla ilgili bilgi. Kullanışlı anahtarlar için etiketlere bakın. |
input_manifests
|
sequence; or None ;
varsayılan = Yok(Deneysel), giriş çalıştırma dosyaları meta verilerini ayarlar. Bunlar genellikleresolve_command tarafından oluşturulur. |
exec_group
|
string; or None ;
default = Noneİşlemi belirtilen yönetici grubunun yürütme platformunda çalıştırır. Yoksa hedefin varsayılan yürütme platformunu kullanır. |
shadowed_action
|
Action ;
default = NoneBelirtilen gölgelenen işlemin, işlemin giriş listesine eklenen keşfedilen girişlerini kullanarak işlemi çalıştırır. Yoksa yalnızca işlemin girişlerini kullanır. |
resource_set
|
callable; or None ;
varsayılan = YokYerel olarak çalıştırılırsa kaynak kullanımını tahmin etmek için bir geri çağırma işlevi. İlgili konu: ctx.actions.run() .
|
toolchain
|
Label; or string; or None ;
varsayılan = YokYü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. Bu seçenek şu anda kullanılamıyor. Ancak gelecekteki Bazel sürümlerinde gerekli olacağından bir araç zinciri kullanıldığında bu yöntemi ayarlamanızı öneririz. Bu işlemi oluşturan kuralın bu araç zincirini, "rule()" işlevinin içinde tanımlaması gerektiğini unutmayın. "araç zinciri" ve "exec_group" parametrelerinin ikisi de ayarlandığında "exec_group" kullanılır. "exec_group"un aynı araç zincirini belirtmemesi durumunda bir hata verilir. |
sembolik bağlantı
None actions.symlink(output, target_file=None, target_path=None, is_executable=False, progress_message=None)Dosya sistemine bir sembolik bağlantı yazan bir işlem oluşturur.
Bu işlev, tam olarak target_file
veya target_path
belirtilmelidir.
target_file
kullandığınızda, output
özelliğini declare_file()
veya declare_directory()
ile tanımlayın ve target_file
türüyle eşleştirin. Bu, sembolik bağlantıyı target_file
işaret eder. Bazel, sembolik bağlantının hedefi veya içeriği her değiştiğinde, bu işlemin sonucunu geçersiz kılar.
Aksi takdirde, target_path
özelliğini kullandığınızda declare_symlink()
ile output
tanımlayın. Bu durumda, sembolik bağlantı target_path
'i işaret eder. Bazel hiçbir zaman sembolik bağlantıyı çözümlemez ve bu işlemin sonucu 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 sembolik bir bağlantı oluşturmak için kullanılabilir.
Parametreler
Parametre | Açıklama |
---|---|
output
|
gerekli Bu işlemin sonucu. |
target_file
|
File; or None ;
varsayılan = YokÇıkış sembolik bağlantısının işaret edeceği dosya. |
target_path
|
string; or None ;
varsayılan = Yok(Deneysel) Çıkış sembolik bağlantısının işaret edeceği tam yol. Normalleştirme veya başka işlemler uygulanmaz. Bu özelliğe erişim için --experimental_allow_unresolved_symlinks ayarlanması gerekir.
|
is_executable
|
default = False Yalnızca target_file ile kullanılabilir, target_path ile kullanılamaz. Doğru değerine ayarlanırsa işlem yürütüldüğünde target_file yolunun yürütülebilir olduğunu doğrulamak için yolu kontrol edilir. Yürütülmezse bir hata bildirilir. is_executable politikasının Yanlış değerine ayarlanması hedefin yürütülebileceği anlamına gelmez, yalnızca doğrulama yapılmadığı anlamına gelir.Derleme sırasında sallanan sembolik bağlantılar bulunmayabileceğinden bu özellik |
progress_message
|
string; or None ;
varsayılan = YokDerleme sırasında kullanıcıya gösterilecek ilerleme mesajı. |
template_dict
TemplateDict actions.template_dict()Deneysel. Bu API deneyseldir ve herhangi bir zamanda değiştirilebilir. Lütfen bu özelliğe güvenmeyin.
--+experimental_lazy_template_expansion
ayarıyla deneysel olarak etkinleştirilebilir. Deneysel: 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, belirtilen içeriği bir dosyaya yazar. Bu özellik, analiz aşamasında mevcut olan bilgileri kullanarak dosya oluşturmak için kullanılır. Dosya büyükse ve çok fazla statik içerik varsa
expand_template
kullanmayı düşünün.
Parametreler
Parametre | Açıklama |
---|---|
output
|
gerekli Çıkış dosyası. |
content
|
string; or Args ;
zorunludosyanın içeriği. Dize veya actions.args() nesnesi olabilir.
|
is_executable
|
default = False Çıkış dosyasının yürütülebilir olup olmayacağı. |