SCons 在多个目录中查找文件

SCons look for files in multiple directories

所以我是 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 脚本就会报错。如何在另一个目录中查找文件?

如果您希望所有目录都成为 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')