gpt4 book ai didi

build-system - 将大型软件项目移植到 tup 构建系统的技巧

转载 作者:行者123 更新时间:2023-12-02 02:09:50 25 4
gpt4 key购买 nike

将结构良好的源代码树中包含数千个 .cpp 文件和相关 header 的软件项目移植到 tup 构建系统的最佳方法是什么?

如果树看起来像:

colors/                                                                            
primaries/
red.cpp
green.cpp
blue.cpp
fruity/
orange.cpp
grape.cpp
grayscale/
white.cpp
gray.cpp
black.cpp
some/annoying/nesting/animals/
horse.cpp
bear.cpp

对于数十个类别,每个类别都有数十个目标文件,编写一次性使用 shell 脚本来转储每个目录中的 Tupfiles 似乎是一个相当不优雅的解决方案,即使由于共享Tuprules.tup。什么是正确的、“最佳实践”、希望可移植的方式来使用 tup 构建这样的项目?

最佳答案

随着最近添加的(仍然没有很好的文档记录)LUA 解析器,您可以避免每个目录有一个 Tupfile。看这里http://gittup.org/tup/lua_parser.html阅读有关 Tupdefault.lua 的信息

此外 - 最近的更改允许在不同的文件夹中输出文件,您可以进一步简化它。您可以在“某处”编译文件,将它们添加到全局组中,然后在需要时将它们全部链接/存档。

简单的 Tuprules.tup:

TOP = $(TUP_CWD)
!cc = |> gcc $(CFLAGS) -c %f -o %o |> %B.o $(TOP)/<objects>

仅用于编译的简单 Tupfile(通用的,不修改标志或其他内容):

include_rules

: foreach *.c |> !cc |>

用于编译和最终链接的简单 Tupfile(注释如上):

include_rules

: foreach *.c |> !cc |>
: $(TOP)/<objects> |> gcc %<objects> -o %o |> application.exe

不幸的是,我(还)不知道如何通过 LUA 解析器使用此特定功能(全局组)。我什至在 tup-users 邮件列表上询问过这个问题。

关于build-system - 将大型软件项目移植到 tup 构建系统的技巧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13407478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com