簡體   English   中英

如何在bazel中獲取目標目錄

[英]How do I get the target directory in bazel

我有一個生成一些輸出文件的genrule ,但是我使用的工具需要知道將文件放置在何處。

到目前為止,我已經能夠通過使用dirname $(location outputfile) ,但這似乎是一個非常脆弱的解決方案

您可以在以下genrule了解哪些make變量可用: https : genrule

尤其是:

@D:輸出目錄。 如果outs只有一個文件名,它將擴展到包含該文件的目錄。 如果存在多個文件名,則即使所有生成的文件都屬於同一子目錄 ,該變量也會擴展到genfiles樹中程序包的根目錄! 如果genrule需要生成臨時中間文件(可能是由於使用諸如編譯器之類的其他工具的結果),則應嘗試將臨時文件寫入@D (盡管/tmp也可寫),並刪除任何此類中間文件。生成的臨時文件。 特別是,避免寫入包含輸入的目錄-它們可能位於只讀文件系統上,即使沒有,也這樣做會破壞源樹。

通常,如果該工具允許您(或者如果您正在編寫自己的工具),則最好為該工具提供單獨的輸入和輸出文件名。 例如,如果該工具僅將輸入理解為目錄,並且如果該目錄僅包含您想要的內容,那么通常就可以,但是如果目錄不包含該內容,那么您就必須依靠沙箱來僅向該工具顯示所需的文件,或者您必須手動創建臨時目錄。 將輸出作為目錄可以減少對輸出命名的控制,並且您仍然必須枚舉genrule outs的文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM