如何获取 SCons 脚本中当前 SCons 可执行文件的路径?

问题描述 投票:0回答:1

我正在尝试从另一个外部 SCons 项目构建一个可执行文件,以便在我的 SCons 构建中使用它。

一开始我尝试跑步:

Command('other_project_dir/executable', None, 'scons -C other_project_dir')

这不起作用,因为 SCons 默认情况下不使用系统

PATH
变量。

即使它可以工作,另一个问题是有人使用 SCons 的自定义路径调用我的脚本。其他脚本仍将使用默认 SCons 构建。

总之,我需要找出当前正在运行的 SCons 的路径是什么。 有什么方法可以获取它,或者存储它的环境变量吗?

scons
1个回答
0
投票

目前(在版本

4.3.0
中)SCons 没有内置方法来获取其路径。

但是,您实际上并不需要任何特殊功能。你可以只使用普通的Python:

import sys
scons_path = sys.argv[0]

Command('other_project_dir/executable', scons_path, '$SOURCE -C other_project_dir')

不要尝试使用变量

__file__
。 它被 SCons 故意删除。


顺便说一句,你应该运行

AlwaysRun('other_project_dir/executable')
。 否则,SCons 可能不会在必要时重建其他项目,因为它不知道其他项目中的依赖关系。

© www.soinside.com 2019 - 2024. All rights reserved.