2015-09-26 157 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