GNU Make:如何将列表连接并用分隔符分开?

23

我有这个:

FOO = foo1 foo2 ... fooN

我想把所有这些字符串连接起来,并用冒号(如)分隔:

foo1:foo2:foo3:...:fooN
在不使用外部UNIX工具的情况下,如何在GNU Make中完成这个任务?

https://dev59.com/lmkv5IYBdhLWcg3wewtd - sanmai
2个回答

28

请看下面的代码。

# 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))

21
你可以简单地用冒号替换空格:

你可以通过将空格替换为冒号来完成:

EMPTY :=
SPACE := $(EMPTY) $(EMPTY)
FOO = foo1 foo2 ... fooN
FOO_LIST = $(subst $(SPACE),:,$(FOO))

FOO_LISTfoo1:foo2:...:fooN


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接