我可以用File('foo.bar').abspath
获取文件的位置,但如果我设置了variant_dir,则返回的路径将位于variant_dir而不是原始位置。如果我有duplicate=0
设置,那么返回的文件实际上并不存在。
显然 SCons 知道原始文件在哪里,因为它是在文件实际构建时作为参数传递的(例如gcc -c -o variant/foo.o orig/foo.c
).
有没有某种File('foo.bar').origpath
我可以用吗?
如果到了我可以使用os.path.join(Dir('#').abspath, 'orig')
但这需要 SConscript 知道它位于哪个目录,这很混乱。
您可以使用srcnode() http://www.scons.org/doc/latest/HTML/scons-api/SCons.Node.FS.Base-class.html#srcnode。引用man page http://www.scons.org/doc/2.0.1/HTML/scons-man.html:
srcnode() 方法返回另一个
代表的文件或目录对象
给定文件或目录的源路径。
这将为您提供源目录中的绝对路径:
File('foo.bar').srcnode().abspath
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)