Scons:如何通过附加两个节点来创建文件路径?
Scons: how to create a file path by appending two nodes?
我正在尝试编写一个将在目标目录中安装 headers 的构造文件。预期效果是:
cp include/a.h ../dest/a.h
cp include/b.h ../dest/b.h
或者一样好:
cp include/a.h ../dest/include/a.h
cp include/a.h ../dest/include/b.h
这是我目前的情况:
env = Environment()
for header in Glob("include/*.h"):
env.Command(Dir("../dest").Append(header), header, Copy("$TARGET", "$SOURCE"))
env.Alias("includes", Dir("../dest").Append(header));
这显然是行不通的,因为没有追加功能。 GlobreturnsNodeobjects,Dir也是Nodeobject。我不知道我应该如何将两个节点 object 组合成更长的路径。有人可以帮忙吗?
您不需要自己将这些路径粘贴在一起(感谢您描述了您试图解决的实际问题)。您正在寻找已经提供的 Install()
方法。另请查看 User Guide,第 11 章 "Installing Files in Other Directories: the Install Builder",但具体的解决方案应该如下所示(从我的脑海中看):
env = Environment()
includes = env.Install("../dest", Glob("include/*.h"))
env.Alias("includes", includes)
如果你真的需要这个
str(node)
将 return 有问题的 node
的路径。 ;)
我正在尝试编写一个将在目标目录中安装 headers 的构造文件。预期效果是:
cp include/a.h ../dest/a.h
cp include/b.h ../dest/b.h
或者一样好:
cp include/a.h ../dest/include/a.h
cp include/a.h ../dest/include/b.h
这是我目前的情况:
env = Environment()
for header in Glob("include/*.h"):
env.Command(Dir("../dest").Append(header), header, Copy("$TARGET", "$SOURCE"))
env.Alias("includes", Dir("../dest").Append(header));
这显然是行不通的,因为没有追加功能。 GlobreturnsNodeobjects,Dir也是Nodeobject。我不知道我应该如何将两个节点 object 组合成更长的路径。有人可以帮忙吗?
您不需要自己将这些路径粘贴在一起(感谢您描述了您试图解决的实际问题)。您正在寻找已经提供的 Install()
方法。另请查看 User Guide,第 11 章 "Installing Files in Other Directories: the Install Builder",但具体的解决方案应该如下所示(从我的脑海中看):
env = Environment()
includes = env.Install("../dest", Glob("include/*.h"))
env.Alias("includes", includes)
如果你真的需要这个
str(node)
将 return 有问题的 node
的路径。 ;)