【问题标题】:Passing parameters from one SConstruct to another SConstruct using scons使用 scons 将参数从一个 SConstruct 传递到另一个 SConstruct
【发布时间】:2016-10-03 06:19:00
【问题描述】:

我有一个使用 SCons 构建的 C 项目,该项目与 Scons 构建的 C 库链接。库和项目都有自己的 SConstruct 文件。我在this topic 中读到,您可以像调用 SConscript 一样从另一个 SConstruct 调用 SConstruct:

SConscript('folder/to/other/SConstruct')

提供给顶层 SConstruct 的命令行参数会自动传递给被调用的 SConstruct。但现在我想将其他变量传递给被调用的 SConstruct。我发现您可以像使用 SConscripts 一样执行此操作:

SConscript('folder/to/other/SConsctruct', exports='my_variable')

然后在被调用的SConstruct中导入它们:

Import('my_variable')

问题是当我直接从命令行调用 C 库中的 SConstruct 时,'my_variabled' 不存在并且 scons 引发错误:

scons: *** Import of non-existent variable ''my_variable''

我应该使用被调用的 SConstruct 中的 try/except 块作为开关来解决此问题,以从 scons 获取变量或获取默认值,还是有更优雅的解决方案?欢迎对不同方法提出任何建议。

【问题讨论】:

    标签: python scons


    【解决方案1】:

    我的猜测是您正在搜索“-u”或“-U”选项。请咨询MAN page 并根据您的需要进行选择。

    【讨论】:

    • 不是真的,因为我希望能够在不依赖上述目录中的 SConstruct 脚本的情况下自行构建 C 库。 'my_variable' 的值应该用一些默认值填充,或者如果可能的话,用命令行填充
    • 但是当您想将变量从一个 SConstruct 传输到另一个(作为问题的标题和实际描述状态)时,您 确实 在两者之间存在依赖关系。我在这里看到了一个轻微的矛盾……换一种说法,我可能会跳过不应该调用顶级 SConstruct 的“要求”,并且会因为我的头撞到这堵墙上而立即得到缓解。 ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    • 1970-01-01
    • 2018-10-20
    • 2012-09-07
    • 2012-04-11
    相关资源
    最近更新 更多