我试图实现这样的目标:如果用户将运行make build_x version=1.0
则显示Building version 1.0
,否则(make build_x
不带version
参数)显示Building version latest
。但这里的关键是什么 - 我需要将版本设置-
为默认值(以便能够正确使用它git
)。这就是为什么我使用附加变量version_info
替换为 的-
原因latest
。
所以我的代码如下所示:
build_x:
$(eval version ?= -)
$(eval version_info = ${if ["${version}" == "-"], "latest", "${version}"})
${INFO} "Doing checkout according to version $(version_info)..."
Run Code Online (Sandbox Code Playgroud)
我知道问题可能出在给 的这个条件上if
。
有任何想法吗?
这对我有用:
\n\nversion ?= -\nifeq (-,$(version))\n version_info = latest\nelse\n version_info = $(version)\nendif\n\nbuild_x:\n @echo version_info = $(version_info)\n
Run Code Online (Sandbox Code Playgroud)\n\n如果未设置则设置version
为-
,然后填写version_info
。
使用特定于目标的变量和单行变体:
\n\nbuild_x: version ?= -\nbuild_x: version_info = $(if $(version:-=),$(version),latest)\nbuild_x:\n @echo version_info = $(version_info)\n
Run Code Online (Sandbox Code Playgroud)\n\n其工作原理如下(请参阅整个GNU Make 文档):
\n\nversion ?= -
设置version
为-
如果 it\xe2\x80\x99s 尚未设置,则if
检查它的第一个参数,评估它以查看它\xe2\x80\x99是否为空,如果第一个参数非空,则替换为第二个参数,如果为空,则替换为第三个参数$(version:-=)
评估version
,替换-
为空字符串(:
引入替换,搜索键是之前的文本=
,替换是之后的文本=
) 归档时间: |
|
查看次数: |
12584 次 |
最近记录: |