3

我想知道 Tupfile 中是否有目录结构的通配符,例如%Bo,它采用不带扩展名的输入文件名。

我的 Tupfile 规则目前如下所示:

: foreach src/*.cpp |> !cxx_c_debug |> build/d/o/%Bo

: foreach src/ dir /*.cpp |> !cxx_c_debug |> build/d/o/ dir /%Bo

: foreach src/ dir2/subdir /*.cpp |> !cxx_c_debug |> build/d/o/ dir2/subdir /%Bo

...

可以想象,有很多dirsubdir。我想对粗体目录结构使用某种通配符,而不是一一列举。有什么方法可以在不在每个目录中创建新的 Tupfile 的情况下完成此操作?

谢谢

4

1 回答 1

2

最简单的方法是使用Tupdefault文件。

这是一个功能,在 tup 0.7.4 中可用,但尚未记录。如果您在源代码树中的任何位置放置一个名为的文件Tupdefault,它将Tupfile在所有子目录中起作用,包括您放置它的那个。

为了使您的特定示例正常工作,该Tupdefault文件可能如下所示:

include_rules
: foreach *.cpp |> !cxx_c_debug |> %B.o

您可能还需要使用 tup 的组功能将所有对象文件收集到放置在项目根目录中的单个组中,并使用该组将它们链接在一起。这是目前正在记录的另一个功能,但 tup 的作者 Mike Shal 在这里解释了它:

https://github.com/gittup/tup/issues/85#issuecomment-19423194

于 2016-05-18T10:38:20.997 回答