建立巨集
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
回報問題open_in_new
查看原始碼open_in_new
。
。
。
。
夜間
。
。
。
。
7.3
。
。
7.2
。
。
7.1
。
。
7.0
。
6.5
。
。
假設您必須在建構過程中執行工具。舉例來說,
可以產生或預先處理來源檔案
或是壓縮二進位檔案在本
教學課程中,我們要建立可調整圖片大小的巨集。
巨集適用於簡單的工作。如果想加強成效
很複雜,例如新增對新的程式設計語言的支援
建立規則。規則可以讓您更靈活地掌控局面和彈性。
如要建立可調整圖片大小的巨集,最簡單的方法就是使用 genrule
:
genrule(
name = "logo_miniature",
srcs = ["logo.png"],
outs = ["small_logo.png"],
cmd = "convert $< -resize 100x100 $@",
)
cc_binary(
name = "my_app",
srcs = ["my_app.cc"],
data = [":logo_miniature"],
)
如要調整更多圖片大小,建議您重複使用程式碼。方法如下
在獨立的 .bzl
檔案中定義函式,並呼叫 miniature.bzl
檔案:
def miniature(name, src, size="100x100", **kwargs):
"""Create a miniature of the src image.
The generated file is prefixed with 'small_'.
"""
native.genrule(
name = name,
srcs = [src],
outs = ["small_" + src],
cmd = "convert $< -resize " + size + " $@",
**kwargs
)
注意事項:
依照慣例,巨集具有 name
引數,就像規則一樣。
如要記錄巨集的行為,請使用
docstring。
如要呼叫 genrule
或任何其他原生規則,請使用 native.
。
使用 **kwargs
將額外引數轉送至基礎 genrule
(運作方式與 Python 相同)。
這很實用,可讓使用者使用 visibility
、
或 tags
。
現在,請使用 BUILD
檔案中的巨集:
load("//path/to:miniature.bzl", "miniature")
miniature(
name = "logo_miniature",
src = "image.png",
)
cc_binary(
name = "my_app",
srcs = ["my_app.cc"],
data = [":logo_miniature"],
)
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2024-08-22 (世界標準時間)。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"缺少我需要的資訊"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"過於複雜/步驟過多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"過時"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻譯問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/程式碼問題"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"容易理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"確實解決了我的問題"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{"lastModified": "\u4e0a\u6b21\u66f4\u65b0\u6642\u9593\uff1a2024-08-22 (\u4e16\u754c\u6a19\u6e96\u6642\u9593)\u3002"}
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2024-08-22 (世界標準時間)。"],[],[]]