所以我是scons的新手,在弄清楚如何在多个目录中查找时遇到了一些麻烦?
这是我目前的方法,适用于单个文件夹:
files = File([
'testfile.c',
'testfile_const.c',
'folder/testfile2.c',
'folder/testfile2_const.c'
])
dir = Dir('.')
env.Append(CPPPATH = dir)
env.Prepend(CPPPATH = dir.srcnode())
Return('files')
问题是,既然我将testfile2
放在了自己的文件夹中,我的scons脚本就会抱怨。如何在另一个目录中查找文件?
答案 0 :(得分:0)
如果您希望所有目录都成为CPPPATH的一部分,则需要显式添加它们。可以使用for循环使用当前方法非常简单地完成此操作:
import os
# Use all C/C++ files in this folder
files = File([
'testfile.c',
'testfile_const.c',
'folder/testfile2.c',
'folder/testfile2_const.c'
])
# Add folder to search path
for file in files:
dirpath = os.path.dirname(file.path)
if not dirpath in env['CPPPATH']:
env.Append(CPPPATH = [dirpath])
Return('files')