1

我正在构建一个脚本,通知我我的构建进度。在构建开始时,bjam告诉我“正在更新 # 个目标...”。

是否bjam具有每次完成构建某个目标时通知您的功能?理想情况下,我想grep输出这些并将百分比输出到我的屏幕。

4

1 回答 1

1

使用 bjam 后,我终于意识到答案一直摆在我面前。事实证明,对于每个正在构建的目标,它都会将对象名称输出到屏幕上。因此,在我的情况下,我想出了一个解决方案,通过在给定时间计算对应的*.o和行来合理地近似目标的数量。*.so希望这可以在将来对其他人有所帮助!

我创建了一个别名Bjam

alias Bjam=' reset ; sudo bjam  -j4 release address-model=32 toolset=gcc-arm target-os=linux threading=multi | Bjam2'

和一个名为Bjam2

#!/bin/bash
n=0
while read line; do
if [ $(echo $line | grep -c '^...updating.*targets...$') -eq 1 ] ; then
TOT=$(echo $line|  sed 's|^\.\.\.updating \([0-9]*\) targets\.\.\.$|\1|' )

fi
if [ $(echo $line | grep -c '^gcc\.compile\.c++.*\.o$' ) -eq 1 ] || [ $(echo $line | grep -c '^.*\.so$' ) -eq 1 ]; then
    n=$((n+1))
    echo "$n/$TOT : $line"
else
    echo $line
fi
done
于 2013-12-12T22:02:06.527 回答