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()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 özelliğin, geçerli pakette belirtilen ada sahip bir dizin oluşturduğunu belirtir. Dizini oluşturan bir işlem oluşturmanız gerekir. Dizinin içeriğine Starlark'tan doğrudan erişilemez, ancak
Args.add_all()
kullanılarak genişletilebilir.
Parametreler
Parametre | Açıklama |
---|---|
filename
|
zorunlu "Kardeş" belirtilmezse yeni dizinin mevcut pakete göre yolu. Aksi takdirde, dosya için temel bir ad ('sibling' bir dizini tanımlar). |
sibling
|
File; or None ;
varsayılan = YokYeni bildirilen dizinle aynı dizinde bulunan bir dosya. Dosya, mevcut 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 mevcut 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ş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 edinebilirsiniz. Kullanım örneğini inceleyin.
Parametreler
Parametre | Açıklama |
---|---|
filename
|
zorunlu "Kardeş" yoksa sağlanan yeni dosyanın yolunu gösterir. Aksi takdirde, dosyanın temel adı ("sibling" (eşdüzey) 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şebilir. Lütfen bu metrikten yararlanmayın. Özellik, --experimental_allow_unresolved_symlinks
ayarlanarak deneysel olarak etkinleştirilebilir
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 sembolik bağlantıyı hiçbir zaman kaldırmaz ve tam olarak korumalı alanlara veya uzak yürütücülere aktarır.
Parametreler
Parametre | Açıklama |
---|---|
filename
|
zorunlu "Kardeş" yoksa sağlanan yeni sembolik bağlantının mevcut pakete göre yolunu belirtir. Aksi takdirde, bir dosyanın temel adı ("kardeş" bir dizini tanımlar). |
sibling
|
File; or None ;
default = NoneYeni tanımlanan 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ış veren ancak "ek işlemler" eklemek için yararlı olan boş bir işlem oluşturur.
Parametreler
Parametre | Açıklama |
---|---|
mnemonic
|
zorunlu İşlemin tek kelimelik açıklaması (ör. 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ı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
|
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 = bağlı değilDeneyseldir. Bu parametre deneme amaçlıdır ve herhangi bir zamanda değişebilir. Lütfen bu yönteme güvenmeyin. --+experimental_lazy_template_expansion Deneysel: Şablon genişletilirken yapılacak yerine 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)Bir yürütülebilir dosyayı çalıştıran bir işlem oluşturur. Kullanım örneğine bakın.
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 depset. |
unused_inputs_list
|
File; or None ;
default = 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; or string; or FilesToRunProvider ;
requiredİşlem tarafından çağrılacak yürütülebilir dosya. |
tools
|
sequence; or depset ;
varsayılan = bağlı değilİşlem için gereken tüm araçları listeleyin veya belirleyin. Araçlar, işlem için otomatik olarak kullanıma sunulan ek çalıştırma dosyalarına sahip girişlerdir. Sağlanan liste, heterojen bir Files, FilesToRunProvider örneği veya Files depset koleksiyonu olabilir. Doğrudan listede bulunan ve ctx.executable öğesinden gelen dosyaların çalıştırma dosyaları otomatik olarak eklenir. Sağlanan depset yalnızca Dosya içermelidir. Her iki durumda da, depsets içindeki dosyalara çalıştırma dosyaları için ctx.executable ile çapraz referans verilmez. |
arguments
|
sequence ;
varsayılan = []İşlemin komut satırı bağımsız değişkenleri. Dize veya actions.args() nesneleri listesi 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 ;
default = NoneDerleme 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
|
default = False İşlemin yerleşik kabuk ortamını kullanıp kullanmayacağı. |
env
|
dict; or None ;
varsayılan = YokOrtam değişkenleri sözlüğünü ayarlar. |
execution_requirements
|
dict; or None ;
varsayılan = Yokİşlemi programlama bilgileri. Faydalı anahtarlar için etiketlere bakın. |
input_manifests
|
sequence; or None ;
default = None(Deneysel) giriş çalışma dosyası meta verilerini ayarlar; bunlar genellikle resolve_command tarafından oluşturulur. |
exec_group
|
string; or None ;
default = Noneİşlemi, belirtilen yürütme grubunun yürütme platformunda çalıştırır. Yoksa hedefin varsayılan yürütme platformunu kullanır. |
shadowed_action
|
Action ;
default = 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
|
callable; or None ;
varsayılan = YokBu 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 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 float veya int türünde olabilecek 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
|
Label; or string; or None ;
varsayılan = YokYürütülebilir öğenin 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 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 bu araç zincirini "rule()" içinde tanımlaması gerektiğini unutmayın. işlevini kullanı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=None)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
|
sequence of Files; or depset ;
default = []İşlemin giriş dosyalarının listesi veya depset. |
tools
|
sequence of Files; or depset ;
varsayılan = bağlı değilİşlem için gereken tüm araçları listeleyin veya tanımlayın. 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 ;
default = []İş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
|
string; or None ;
varsayılan = Yokİşlemin tek kelimelik bir açıklaması, örneğin, CppCompile veya GoLink. |
command
|
string; or sequence of strings ;
gerekliYürütülecek kabuk komutu. Bu, bir dize (tercih edilen) veya dize (desteği sonlandırılmış) dizisi olabilir.
(Kullanımdan kaldırıldı) Bazel, komutu yürütmek için genrules ile aynı kabuğu kullanır. |
progress_message
|
string; or None ;
default = NoneDerleme 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
|
default = False İşlemin yerleşik kabuk ortamını kullanıp kullanmayacağı. |
env
|
dict; or None ;
varsayılan = YokOrtam değişkenleri sözlüğünü ayarlar. |
execution_requirements
|
dict; or None ;
varsayılan = Yokİşlemi programlama bilgileri. Faydalı anahtarlar için etiketlere bakın. |
input_manifests
|
sequence; or None ;
varsayılan = Yok(Deneysel) giriş çalıştırma dosyaları meta verilerini ayarlar; genellikle çözümleme_komutu ile oluşturulurlar. |
exec_group
|
string; or None ;
varsayılan = Yokİş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
|
Action ;
default = Noneİşlemi, gölgelenen işlemin giriş listesine eklenen keşfedilen girişlerini kullanarak çalıştırır. Yoksa yalnızca işlemin girişlerini kullanır. |
resource_set
|
callable; or None ;
default = NoneYerel olarak çalıştırıldığında kaynak kullanımını tahmin etmek için bir geri çağırma işlevi. ctx.actions.run() başlıklı makaleyi inceleyin.
|
toolchain
|
Label; or string; or None ;
default = NoneBu 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 bu araç zincirini "rule()" içinde tanımlaması gerektiğini unutmayın. işlevini kullanı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)Dosya sistemine 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
türünü kullanırken output
öğesini declare_file()
veya declare_directory()
ile tanımlayın ve target_file
türünü eşleştirin. Bu, sembolik bağlantıyı target_file
işaret eder. 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
kullandığınızda declare_symlink()
ile output
bildiriminde bulunun. Bu durumda sembolik bağlantı target_path
işaretini gösteriyor. 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. Özellikle, boş bir sembolik bağlantı oluşturmak için kullanılabilir.
Parametreler
Parametre | Açıklama |
---|---|
output
|
zorunlu 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 ;
default = None(Deneysel) Çıkış sembolik bağlantısının işaret edeceği tam yol. Normalleştirme veya başka bir işlem uygulanmaz. Bu özelliğe erişim için --experimental_allow_unresolved_symlinks politikasının ayarlanması gerekir.
|
is_executable
|
default = False Yalnızca target_file ile kullanılabilir, target_path ile kullanılamaz. 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 politikasının Yanlış değerine ayarlanması hedefin yürütülebilir olmadığı anlamına gelmez, yalnızca doğrulama yapılmadığını gösterir.Derleme sırasında sarkan sembolik bağlantılar mevcut olmayabileceğinden bu özellik |
progress_message
|
string; or None ;
default = NoneDerleme 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şebilir. Lütfen bu metrikten yararlanmayın.
--+experimental_lazy_template_expansion
ayarlanarak deneysel olarak etkinleştirilebilir. Deneysel: Bellek açısından verimli şablon genişletmesi için 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çeriğe sahipse
expand_template
kullanabilirsiniz.
Parametreler
Parametre | Açıklama |
---|---|
output
|
zorunlu Çıkış dosyası. |
content
|
string; or Args ;
zorunludosya içeriği. Bir dize veya actions.args() nesnesi olabilir.
|
is_executable
|
varsayılan = Yanlış Çıkış dosyasının yürütülebilir olup olmayacağı. |