ctx.actions
kullanarak bu modüle erişin.
Üyeler
- bağımsız değişkenler
- bildirme_dizini
- bildirme_dosyası
- bilimsel_sembol bağlantısı
- hiçbir şey yapma
- genişletme_şablonu
- koşma
- run_shell
- sembolik bağlantı
- şablon_dikkati
- yazma
bağımsız değişkenler
Args actions.args()Bellek açısından verimli komut satırları oluşturmak için kullanılabilecek bir Args nesnesi döndürür.
tanım_dizini
File actions.declare_directory(filename, *, sibling=None)Kuralın veya özelliğin, mevcut 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. Bir normal_dizinin genişletilmiş içeriğinde yalnızca normal dosyalar ve dizinler bulunabilir.
Parametreler
Parametre | Açıklama |
---|---|
filename
|
gerekli "Kardeş" yoksa mevcut dizinin yeni dizin yolu. Aksi takdirde, bir dosyanın temel adı ("kardeş" dizini tanımlar). |
sibling
|
File; or None ;
default = YokYeni tanımlanan dizinle aynı dizinde bulunan bir dosya. Dosya geçerli pakette olmalıdır. |
beyan etme_dosyası
File actions.declare_file(filename, *, sibling=None)Kural veya özelliğin, belirtilen dosya adıyla bir dosya oluşturduğunu bildirir.
sibling
belirtilmezse dosya adı paket diziniyle görelidir, aksi takdirde dosya sibling
ile aynı dizindedir. Dosyalar geçerli paketin dışında oluşturulamaz.Bir dosyayı bildirmenin yanı sıra, dosyayı etkileyen bir işlem oluşturmanız gerektiğini de unutmayın. Bu işlemin oluşturulması için döndürülen File
nesnesinin işlemin derleme işlevine aktarılması gerekir.
Önceden tanımlanmış çıkış dosyalarının, bu işlev kullanılarak beyan edilmesi (ve beyan edilmemesi) gerektiğini unutmayın. Bunun yerine, File
nesnelerini ctx.outputs
aracından alabilirsiniz. Kullanım örneğini inceleyin.
Parametreler
Parametre | Açıklama |
---|---|
filename
|
gerekli "Kardeş" dosya sağlanmamışsa yeni dosyanın yolu geçerli pakete göre belirlenir. Aksi takdirde, bir dosyanın temel adı ("kardeş" tarafından bir dizin belirlenir). |
sibling
|
File; or None ;
default = YokYeni oluşturulan dosyayla aynı dizinde bulunan bir dosya. Dosya geçerli pakette olmalıdır. |
beyan_simgesi
File actions.declare_symlink(filename, *, sibling=None)
Bu parametre deneyseldir ve herhangi bir zamanda değiştirilebilir. --noexperimental_allow_unresolved_symlinks
ayarlayarak devre dışı bırakılabilir
Kuralın veya özelliğin, geçerli pakette belirtilen adla bir sembolik bağlantı oluşturduğunu bildirir. Bu sembolik bağlantıyı oluşturan bir işlem oluşturmanız gerekir. Bazel, bu sembol bağlantısının bağlantısını hiçbir zaman kaldırmayacak ve bağlantıyı korumalı alanlara veya uzak yürütücülere aktaracaktır. Ağaç yapılarındaki sembolik bağlantılar şu anda desteklenmemektedir.
Parametreler
Parametre | Açıklama |
---|---|
filename
|
gerekli "Kardeş" sağlanmazsa yeni simgesel bağlantının geçerli pakete göre yolu. Aksi takdirde, bir dosyanın temel adı ("kardeş" dizini tanımlar). |
sibling
|
File; or None ;
default = YokYeni tanımlanan sembolik bağlantı ile aynı dizinde bulunan bir dosya. |
hiçbir şey yapmayın
None actions.do_nothing(mnemonic, inputs=[])Komut çalıştırmayan veya herhangi bir çıktı üretmeyen ancak "ek işlemler" eklemek için yararlı olan boş bir işlem oluşturur.
Parametreler
Parametre | Açıklama |
---|---|
mnemonic
|
gereklidir İşlemle ilgili tek kelimelik bir açıklama (ör. CppCompile veya GoLink). |
inputs
|
sequence of Files; or depset ;
default = []İşlemin giriş dosyalarının listesi. |
şablonu genişlet
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, bir şablonu temel alan bir dosya oluşturur. Şablonun bölümleri, değişiklikler belirtilerek
substitutions
sözlüğü kullanılarak değiştirilir. Sözlükteki bir anahtar (veya önceki bir değişikliğin sonucu) şablonda her gösterildiğinde ilişkili değerle değiştirilir. Anahtarlar için özel bir söz dizimi yoktur. Örneğin, çakışmaları önlemek için süslü ayraç kullanabilirsiniz (örneğin, {KEY}
). Kullanım örneğini inceleyin.
Parametreler
Parametre | Açıklama |
---|---|
template
|
gereklidir UTF-8 olarak kodlanmış metin dosyası olan şablon dosyası. |
output
|
gereklidir UTF-8 olarak kodlanmış metin dosyası olan çıkış dosyasıdır. |
substitutions
|
default = {} Şablonu genişlettiğinde yapılacak değişiklikler. |
is_executable
|
default = False Çıkış dosyasının yürütülebilir olup olmayacağı. |
computed_substitutions
|
TemplateDict ;
default = unboundDeneysel. Bu parametre deneyseldir ve herhangi bir zamanda değiştirilebilir. Lütfen bağımlı olma. --+experimental_lazy_template_expansion Deneysel: Şablonu genişletirken yapılacak değişiklikler ile deneme amaçlı olarak etkinleştirilebilir. |
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 bir komut dosyası ç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ın listesi veya desteği sonlandırıldı. |
unused_inputs_list
|
File; or None ;
default = 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) tüm işlem sırasında kullanılmayan giriş dosyalarının listesine karşılık gelir. Bu dosyalarda yapılacak herhangi bir değişiklik, işlemin çıktılarını hiçbir şekilde etkilememelidir. |
executable
|
File; or string; or FilesToRunProvider ;
gereklidirİşlem tarafından çağrılacak yürütülebilir dosya. |
tools
|
sequence; or depset ;
default = unboundİşlem için gereken tüm araçların liste dışı bırakılması veya kullanımdan kaldırılması. Araçlar, otomatik olarak işlemin kullanımına sunulan ek Runfile'ları olan girişlerdir. Bir liste sağlandığında liste, dosyalardan, FilesToRunProvider örneklerinden veya Dosya destinasyonlarından oluşan heterojen bir koleksiyon olabilir. Doğrudan listede bulunan ve ctx.executable kaynağından gelen dosyalar, Runfile dosyalarına otomatik olarak eklenir. Bir ayırma sağlandığında, yalnızca Dosyalar'ı içermelidir. Her iki durumda da, istemcilerdeki dosyalar run.exe dosyaları için ctx.executable ile çapraz referansta bulunulmaz. |
arguments
|
sequence ;
default = []İşlemin komut satırı bağımsız değişkenleri. Dize veya actions.args() nesnesinden oluşan bir liste olmalıdır.
|
mnemonic
|
string; or None ;
default = Yokİşlemle ilgili tek kelimelik bir açıklama (ör. CppCompile veya GoLink). |
progress_message
|
string; or None ;
default = YokDerleme sırasında kullanıcıya gösterilecek ilerleme mesajı (ör. "foo.cc derlemek için foo.cc derleme"). İletide sırasıyla etiket dizesi, ilk giriş veya çıkış yolu ile değiştirilen %{label} , %{input} veya %{output} kalıpları olabilir. İlki daha verimli olduğu için statik dizeler yerine kalıpları kullanmayı tercih eder.
|
use_default_shell_env
|
default = False İşlemin yerleşik kabuk ortamını kullanıp kullanmayacağı. |
env
|
dict; or None ;
default = YokOrtam değişkenlerinin sözlüğünü ayarlar. |
execution_requirements
|
dict; or None ;
default = Yokİşlemi planlamaya yönelik bilgiler. Faydalı anahtarlar için etiketler konusuna bakın. |
input_manifests
|
sequence; or None ;
default = Yok(Deneysel), giriş çalıştırma dosyalarının meta verilerini ayarlar. Bunlar genellikle Çözüm_command tarafından oluşturulur. |
exec_group
|
string; or None ;
default = Yokİşlemi, belirli bir exec grubunun yürütme platformunda çalıştırır. Yoksa hedefin varsayılan yürütme platformunu kullanır. |
shadowed_action
|
Action ;
default = Yokİşlemi, belirtilen gölgeli işlemin girişlerini ve işlemin giriş listesine ve ortamına eklenen ortamı kullanarak çalıştırır. İşlem ortamı, gölgeli işlemin ortam değişkenlerinin üzerine yazılabilir. Yoksa yalnızca işlemin girişlerini ve belirtilen ortamı kullanır. |
resource_set
|
callable; or None ;
default = YokBir kaynak kümesi sözlüğü döndüren, yerel olarak çalıştırılan bu işlem yürütme sırasında kaynak kullanımını tahmin etmek için kullanılan bir geri çağırma işlevi. İşlev, iki konum bağımsız değişkenini kabul eder: OS adını temsil eden dize (ör. "osx") ve işleme giriş sayısını temsil eden tam sayı. Döndürülen sözlük, her biri kayan veya tam sayı olabilecek 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
|
Label; or string; or None ;
varsayılan = sınırsızYürütülebilir dosyanın veya bu işlemde kullanılan araçların zincir zinciri türü. Parametrenin, işlemin doğru yürütme platformunda gerçekleştirileceği şekilde ayarlanması gerekir. Şu an için işlem yapılması gerekmiyor. Ancak, gelecekteki Bazel sürümlerinde kullanılması gerekeceğinden bir araç zinciri kullanıldığında ayarlama yapmanızı öneririz. Bu işlemi oluşturan kuralın bu araç zincirini "rule()" işlevi içinde 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 belirtmiyorsa hata oluşur. |
koşu_kabuğu
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 ;
zorunluİşlemin çıkış dosyalarının listesi. |
inputs
|
sequence of Files; or depset ;
default = []İşlemin giriş dosyalarının listesi veya desteği sonlandırıldı. |
tools
|
sequence of Files; or depset ;
default = unboundİşlem için gereken tüm araçların liste dışı bırakılması veya kullanımdan kaldırılması. Araçlar, otomatik olarak işlemin kullanımına sunulan ek Runfile'ları olan girişlerdir. Liste, Files veya FilesToRunProvider örneklerini içerebilir. |
arguments
|
sequence ;
default = []İşlemin komut satırı bağımsız değişkenleri. Dize veya actions.args() nesnesinden 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 ;
default = Yokİşlemle ilgili tek kelimelik bir açıklama (ör. CppCompile veya GoLink). |
command
|
string; or sequence of strings ;
zorunluYürütülecek kabuk komutu. Bu, bir dize (tercih edilen) veya bir dize dizisi (kullanımdan kaldırıldı) olabilir.
(Kullanımdan kaldırıldı) Bazel, komutu çalıştırmak için genel kurallarla aynı kabuğu kullanır. |
progress_message
|
string; or None ;
default = YokDerleme sırasında kullanıcıya gösterilecek ilerleme mesajı (ör. "foo.cc derlemek için foo.cc derleme"). İletide sırasıyla etiket dizesi, ilk giriş veya çıkış yolu ile değiştirilen %{label} , %{input} veya %{output} kalıpları olabilir. İlki daha verimli olduğu için statik dizeler yerine kalıpları kullanmayı tercih eder.
|
use_default_shell_env
|
default = False İşlemin yerleşik kabuk ortamını kullanıp kullanmayacağı. |
env
|
dict; or None ;
default = YokOrtam değişkenlerinin sözlüğünü ayarlar. |
execution_requirements
|
dict; or None ;
default = Yokİşlemi planlamaya yönelik bilgiler. Faydalı anahtarlar için etiketler konusuna bakın. |
input_manifests
|
sequence; or None ;
default = Yok(Deneysel), giriş çalıştırma dosyalarının meta verilerini ayarlar. Bunlar genellikle Çözüm_command tarafından oluşturulur. |
exec_group
|
string; or None ;
default = Yokİşlemi, belirli bir exec grubunun yürütme platformunda çalıştırır. Yoksa hedefin varsayılan yürütme platformunu kullanır. |
shadowed_action
|
Action ;
default = Yokİşlemi, belirtilen giriş işleminin keşfettiği girişleri kullanarak işlemin giriş listesine çalıştırır. Yoksa yalnızca işlemin girişlerini kullanır. |
resource_set
|
callable; or None ;
default = YokYerel olarak çalıştırılırsa kaynak kullanımını tahmin etmek için bir geri çağırma işlevi. Bkz. ctx.actions.run() .
|
toolchain
|
Label; or string; or None ;
varsayılan = sınırsızYürütülebilir dosyanın veya bu işlemde kullanılan araçların zincir zinciri türü. Parametrenin, işlemin doğru yürütme platformunda gerçekleştirileceği şekilde ayarlanması gerekir. Şu an için işlem yapılması gerekmiyor. Ancak, gelecekteki Bazel sürümlerinde kullanılması gerekeceğinden bir araç zinciri kullanıldığında ayarlama yapmanızı öneririz. Bu işlemi oluşturan kuralın bu araç zincirini "rule()" işlevi içinde 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 belirtmiyorsa hata oluşur. araç zinciri. |
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, tam olarak bir target_file
veya target_path
belirtilmiş halde çağrılmalıdır.
target_file
özelliğini kullandığınızda declare_file()
veya declare_directory()
ile output
ifadesini bildirin ve target_file
türüyle eşleştirin. Bu durumda, sembolik bağlantı target_file
konumuna işaret eder. Bazel, sembol bağlantısı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
kodunu kullandığınızda declare_symlink()
ile output
ifadesini belirtin. Bu durumda, sembolik bağlantı target_path
değerini gösterir. Bazel hiçbir zaman sembolik bağlantıyı çözümlemez ve bu işlemin çıkışı yalnızca sembol bağlantısının metin içeriği (yani readlink()
değeri) değiştiğinde geçersiz kılınır. Özellikle sallanan bir sembolik bağlantı oluşturmak için kullanılabilir.
Parametreler
Parametre | Açıklama |
---|---|
output
|
gerekli Bu işlemin sonucu. |
target_file
|
File; or None ;
default = YokÇıkış sembolünün işaret edeceği dosya. |
target_path
|
string; or None ;
default = YokÇıkış sembolü bağlantısının yönlendirdiği tam yol. Normalleştirme veya başka bir işlem uygulanmaz. |
is_executable
|
default = False Yalnızca target_file ile kullanılabilir, target_path ile kullanılamaz. Doğruysa işlem yürütüldüğünde target_file yolu, yürütülebilir olduğunu onaylamak için kontrol edilir ve yürütülmezse bir hata bildirilir. is_executable False (Yanlış) değerine ayarlanırsa hedef yürütülebilir değil, yalnızca doğrulama yapılmaz.Sallanan sembolik bağlantılar oluşturma sırasında mevcut olmayacağından bu özellik |
progress_message
|
string; or None ;
default = YokDerleme sırasında kullanıcıya gösterilecek ilerleme mesajı. |
şablon_dikkati
TemplateDict actions.template_dict()Deneysel. Bu API deneyseldir ve herhangi bir zamanda değiştirilebilir. Lütfen bağımlı olma.
--+experimental_lazy_template_expansion
ayarlayarak deneysel şekilde etkinleştirilebilir Deneysel: Bellek açısından verimli şablon genişletme 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 dosya, analiz aşamasında bulunan bilgileri kullanarak dosya oluşturmak için kullanılır. Dosya büyükse ve çok fazla statik içeriğe sahipse
expand_template
öğesini kullanabilirsiniz.
Parametreler
Parametre | Açıklama |
---|---|
output
|
gereklidir Çıkış dosyası. |
content
|
string; or Args ; dosyanın içeriğigerekir. Bir dize veya bir actions.args() nesnesi olabilir.
|
is_executable
|
default = False Çıkış dosyasının yürütülebilir olup olmayacağı. |