【发布时间】:2012-03-22 00:37:09
【问题描述】:
我有这个:
FOO = foo1 foo2 ... fooN
并希望加入所有这些字符串并将其分隔,例如,冒号:
foo1:foo2:foo3:...:fooN
如何在 GNU Make 中做到这一点,而不使用外部 UNIX 工具?
【问题讨论】:
标签: string join makefile concatenation separator
我有这个:
FOO = foo1 foo2 ... fooN
并希望加入所有这些字符串并将其分隔,例如,冒号:
foo1:foo2:foo3:...:fooN
如何在 GNU Make 中做到这一点,而不使用外部 UNIX 工具?
【问题讨论】:
标签: string join makefile concatenation separator
请看下面的代码。
# A literal space.
space :=
space +=
# Joins elements of the list in arg 2 with the given separator.
# 1. Element separator.
# 2. The list.
join-with = $(subst $(space),$1,$(strip $2))
用法:
FOO = foo1 foo2 ... fooN
COLON_SEPARATED_FOO := $(call join-with,:,$(FOO))
【讨论】:
您可以简单地用冒号替换空格:
EMPTY :=
SPACE := $(EMPTY) $(EMPTY)
FOO = foo1 foo2 ... fooN
FOO_LIST = $(subst $(SPACE),:,$(FOO))
FOO_LIST 是foo1:foo2:...:fooN。
【讨论】: