从内置SCON中排除某些文件

2024-09-29 21:56:26 发布

您现在位置:Python中文网/ 问答频道 /正文

由于我是Scons的新手,我发现很难将现有的Makefile迁移到Scons。在

背景: 我在一个目录中有50个文件。我只想过滤扩展名为*.cxx的文件,也就是没有字符串“win32”的文件名。在

有人能建议在Scons中实现这种逻辑:

生成文件实现:

WIN32FILTER = $(wildcard *win32*)
CXXOBJS = $(patsubst %.cxx,%.o,$(filter-out $(WIN32FILTER),$(wildcard *.cxx)))

在Scons,我正在尝试这样的事情:

^{pr2}$

moduleSources此处应包含所有*.cxx文件(不包括win32字符串)的列表,这些文件将用于生成静态库。在

感谢任何帮助。在


Tags: 文件字符串目录文件名cxx逻辑scons建议
1条回答
网友
1楼 · 发布于 2024-09-29 21:56:26

您可以创建一个包含空格的字符串来描述源代码文件集。这不是你所希望的。在

相反,创建一个文件名列表。下面的SConstruct执行您想要的操作:

import os
import fnmatch

env = Environment()

moduleSources = []
for root, dirs, files in os.walk('./'):
    for filename in fnmatch.filter(files, '*.cxx'):
        if "win32" not in filename:
            moduleSources.append(os.path.join(root, filename))

env.StaticLibrary( "support_host", moduleSources)

相关问题 更多 >

    热门问题