1

我有一个 SConscript,它被复制到构建目录 ( variant_dir = ...) 以进行构建。作为无法表达依赖关系的解决方法,我正在尝试将一些其他文件复制到构建目录中。

如何在 SConscript 中确定当前的构建目录是什么?

例如,在以下布局中,内部 SConscript 文件应设置my_build_directory为“build/something”。

project/
    SConstruct      # "SConscript('something/SConscript', variant_dir = 'build/something')
    something/
        SConscript  # "my_build_directory = ..."
4

1 回答 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.
于 2009-12-16T19:06:31.780 回答