【发布时间】:2015-09-26 17:23:20
【问题描述】:
我遇到了一个使用 scons 的构建系统。完全不熟悉 scons 本身是一个相当复杂的框架,我对无法调试构建问题感到非常沮丧。
我希望 scons 打印出正在调用的完全扩展的命令行(正如您在大多数构建系统中看到的那样)我发现您可以使用 --debug=presub选项,但(至少在 OSX 上)它是无用的,因为它会打印未扩展变量的值
例如:
Building build/obj/ios-uni-rel-sta-clang/common/libs/boost/libs/date_time/src/gregorian/date_generators.i386.o with action:
$SHCXX -o $TARGET -c $SHCXXFLAGS $SHCCFLAGS $_CCCOMCOM $SOURCES
您还可以在 scons 命令行上提供一个 VERBOSE=1 参数,但是(至少在 2.3.4 版本)我得到的版本,它似乎并不冗长.
我并不是说 Scons 不好,但维护起来有点费力和昂贵:(
有人熟悉 Scons 吗?什么模块,实际命令在哪里被调用?我只是想添加一些打印...
或者,您如何设置 PyDev 或 PyCharm 以使用 scons --debug=pdb 进行连接?有人这样做吗?
【问题讨论】:
-
你能展示一下现在的实际输出吗?另外,您要构建什么软件包? SCons 允许构建系统开发人员隐藏完整的输出。
-
它是否使用了修补过的 scons?我在 Windows 上有 2.3.4,它以所有肮脏的细节打印出完整的命令行
-
我使用的是 2.4.0,我最终使用了命令行 python 调试 Scons 并在第 827 行和828 的 Action.py 模块打印出扩展的命令行。