2010-07-01 33 views
0

比方说,我有这样的目录结构:scons的 - 源/ include路径

  • SConstruct
  • 的src/
    • a.cpp
    • b.cpp
  • 包括/
    • A.H
    • b.h

在SConstruct我不想指定[ 'SRC/a.cpp', 'SCR/b.cpp']每一次;我正在寻找一些方法将基础源目录设置为'src'

任何提示?我一直在寻找到的文档,但无法找到任何有用

回答

2

一种你两个选择:

首先,scons的喜欢用SConscript文件子目录。将一个SConscript放在src/中,它可以引用本地文件(并且也会在build subdir中生成输出)。您可以在SConstruct中设置一次环境。然后,从主SConstruct中“加载”SConscript。

SConscript('src/SConscript') 

随着项目的发展,在子目录管理SConscript的文件是比把一切在主SConstruct容易。

其次,这可能有帮助similar question/answer - 它使用Glob一个非常简单的例子。

第三,因为它只是蟒蛇,可以使文件的列表,而没有前缀和使用列表理解来构建真正的名单:

file_sources = [ 'a.c', 'b.c' ] 
real_sources = [os.path.join('src', f) for f in file_sources]