我可以使用SCons显示构建的进度吗?

Jas*_*n R 7 scons

我有一个简单的构建系统,用于我使用SCons放在一起的项目.该项目有很多源文件,我认为随着构建的进展,显示某种进度信息对用户友好.SCons提供CXXCOMSTR了我可以覆盖的构造变量,以控制在每个构建步骤期间显示给终端的内容.例如,而不是看到像:

gcc file.c -o file.o
Run Code Online (Sandbox Code Playgroud)

有这样的东西会很高兴:

[1/10] Compiling file.c: `gcc file.c -o file.o`
Run Code Online (Sandbox Code Playgroud)

其中[1/10]指定这是在此构建期间正在更新的十个目标中的第一个.有没有办法访问这些信息,以便我可以生成这样的消息?看起来我需要知道正在更新的目标总数(这是基于SCons所做的依赖性扫描)和一些枚举每个目标的方法.我知道类似的行为类似于其他构建系统,如CMake和waf,但在SCons(扩展)文档中没有遇到过任何问题.

Bra*_*ady 5

这可以通过Progress() SCons函数完成.

SCons手册页中有更多示例,只搜索"进度".

您可以提供要调用的函数,将定期显示的字符串,或者将以旋转方式显示的字符串列表.您可以访问正在构建的当前目标,但我不认为可以知道完成的百分比.

  • 谢谢(你的)信息.不幸的是,我认为我的问题的最终答案可以在该页面的底部找到:*(请注意,这里有一个明显的后续问题:如何找到将要评估的节点总数,以便您可以告诉用户有多接近完成构建?不幸的是,在一般情况下,没有一个好的方法可以做到这一点,没有SCons评估其依赖图两次,首先计算总数和第二次实际构建目标...)*所以,似乎我不能得到我想要的"[1/10]"进度表. (2认同)