2015-09-26 158 views
5

我遇到了使用scons的构建系统。根本不熟悉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

还有一个VERBOSE = 1参数你可以在scons命令行上提供,但是(至少在2.3.4版本的版本中),它似乎没有任何冗长的内容。

我并不是说使用SCons是坏的,但它变得有点税收和扩张来维持:(

任何熟悉使用SCons?什么模块,在实际的命令被调用在哪里呢?我只是想添加一些版画...

或者,你怎么能设置的PyDev或PyCharm挂钩使用scons的--debug = PDB?难道有人吗?

+0

谢谢罗马! – Rastikan

+0

你可以显示实际的输出是什么吗?你也试图建立什么包? SCons允许构建系统开发人员隐藏完整的输出。 – bdbaddog

+0

它使用补丁scons吗?我在Windows上有2.3.4,它打印出所有肮脏详细信息的完整命令行 –

回答

-1

SHOWBUILD = 1

佛R实施例: $> scons的SHOWBUILD = 1

这在SConstruct,SConscript为我工作

+0

SHOWBUILD不是scons默认值,但必须在某些sconstruct/sconscripts中实现。 – bdbaddog

0

某处,或由加载一些Python模块(可以是下顶DIR site_scons)有人正在改变* COMSTR env变量。

它看起来是这样的:

env['SHCXXCOMSTR'] = "Building $TARGET" 

或:

for k in env.keys(): 
    if k.endswith('COMSTR'): 
     env[k] = "Building $TARGET" 

你要注释掉这些行。

默认的SCons行为是显示命令行。

http://scons.org/doc/production/HTML/scons-man.html#cv-SHCXXCOMSTR