gpt4 book ai didi

SCons:强制 SCons 复制文件

转载 作者:行者123 更新时间:2023-12-01 19:55:38 27 4
gpt4 key购买 nike

我有一个仅包含头文件的库,其中包含一个文件夹层次结构和一堆 .hpp我想安装的文件。我的问题是,该 scons 不会将该文件夹复制到构建文件夹中。

这是我的目录布局的样子:

root
SConstruct
subdir
SConscript
the_lib
subdir_a
header_a.hpp
subdir_b
header_b.hpp
build
(...)

这是我在 subdir/SConscript 中所做的:
all_headers = []

for root, dirnames, filenames in os.walk('.'):
for filename in fnmatch.filter(filenames, '*.hpp'):
fn = os.path.join(root, filename)
all_headers.append((fn, root))

for f, d in all_headers:
install.AddHeader( f, d )

我这样做是为了获取文件名及其相对路径,然后,我使用前几天在 scons wiki 中找到的安装程序。

观察: all_headers保持为空,因为 the_lib文件夹不会被复制。我累了 subdir_env.Dir('the_lib') ,但没有改变任何事情。

运行脚本后,我有 the_lib/SConscript在我的 build文件夹,但没有别的。当然,我可以理解我的文件系统遍历在这种情况下没有任何作用。

谁能帮我?

更新

我找到的唯一出路是运行 find -name "*.hpp"并将结果粘贴到我的 SConscript 中.现在就像一个魅力,但由于库是一个外部库(并且可能添加或删除了一些文件),我想到了一个更通用的解决方案,而无需按名称知道所有标题。

最佳答案

我首先想到的是使用 SCons Install() builder ,但那是在不同位置安装实际的 SCons 目标,并且由于这些头文件不是目标,因此行不通。

因此,在这种情况下,您可以使用所谓的 SCons Copy Factory .

关于SCons:强制 SCons 复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16674516/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com