python - 从 SConscript 确定构建目录

标签 python build-automation scons

我有一个 SConscript,它被复制到构建目录 (variant_dir = ...) 进行构建。作为 not being able to express dependencies 的解决方法,我正在尝试将一些附加文件复制到构建目录中。

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

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

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

最佳答案

我的回答似乎太简单了,所以也许我误解了这个问题,但是......

对我来说,在 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.

关于python - 从 SConscript 确定构建目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1916473/

相关文章:

python - 将函数应用于 pandas 中的列集, 'looping' 按列遍历整个数据框

python - QTableWidget 中的 PyQt5 QComboBox

python - Redis 后端不工作?

tfs - 在 TFS 的分支上自动构建

tfs - 如何将多个 TFS 2012 构建定义链接到单个构建定义

python - 使用 Python subprocess.call() 启动 ncurses 进程

python - SQLAlchemy:检查列类型大小给出奇怪的结果

c++ - 在错误的平台上使用 Scons 链接器搜索构建 iOS 静态库

c++ - Scons 选择哪个版本的g++ |无法识别的命令行选项 "-std=c++11"

version-control - 更新 TeamCity : Now Won't Checkout Mercurial