我想先打印目录名,然后再编译文件名。
现在使用“CCCOMSTR”变量来打印源名称。如下。
env['CCCOMSTR'] = "= Compiling $SOURCE"
每次都用目录打印源名称。
我希望输出如下:
建筑目录:“目录名称”
=编译“源文件名”
=编译“源文件名”
建筑目录:“目录名称”
=编译“源文件名”
=编译“源文件名”
任何人都可以告诉我该怎么做。
由于
答案 0 :(得分:1)
我认为不可能做你要求的事情。我想你现在已经注意到,SCons不是make,因为在评估时Makefile中的命令会被执行,并且Makefile中的echo会在你预期时看到。 SCons有效地执行2次传递:第一次是从SCons脚本读取内部结构中的所有内容,然后分析结构并构建需要构建的内容。读取脚本时,将显示SCons脚本中的所有打印件,而不是在构建目标时显示。
使用SCons Progress()函数或许更好的方法来做你正在做的事情。
正如评论中所提到的,Progress()函数只会在分析时显示目标,而不是在构建时显示。但是,如果为Progress()函数提供函数,则可以获取每个函数的目录,其中一个接收的参数是节点,实际上是目标,您可以为其获取目录,如here所述。这是一个例子:
def progress_function(node)
print 'Node %s: %s' % (node, Dir(node).abspath))
Progress(progress_function)