从SConscript中确定构建目录
我有一个 SConscript 文件,它会被复制到一个构建目录(variant_dir = ...
)里进行构建。为了绕过一个问题,具体是关于< a href="https://stackoverflow.com/questions/1916251">无法表达依赖关系,我想把一些额外的文件复制到构建目录中。
我该如何在 SConscript 中确定当前的构建目录呢?
比如,在下面的结构中,内部的 SConscript 文件应该把 my_build_directory
设置为 "build/something"。
project/
SConstruct # "SConscript('something/SConscript', variant_dir = 'build/something')
something/
SConscript # "my_build_directory = ..."
1 个回答
2
我的回答看起来太简单了,所以可能我误解了问题,不过……
对我来说,在 subdir/SConscript 里:
my_build_directory = '.'
echo_cmd = Command('always.echo', [], "echo %s" % (Dir('.').abspath))
Alias('echo', echo_cmd)
会产生:
# => cd test-scons
# => ls
# build/ SConstruct subdir/
# => scons echo
# scons: Building targets ...
# echo HOME/test-scons/build/subdir
# HOME/test-scons/build/subdir
# scons: done building targets.