如何解决如何将验证逻辑作为对 SCONS 目标的依赖
我对 SCONS 上的构建过程有一个简单但不明显的要求。
我需要输入以下命令:
scons release [version]
预期结果
这应该做的是:
- 激活名为 release 的目标。
- 捕获在发布参数之后不久传递的参数。
- 作为目标的一部分,执行一个函数。如果发布 targed 后传递的参数有效,则调用另一个 targed。
- 如果无效,则中断工作流程并显示错误消息。
问题
我不知道如何设置
我目前的假设是:
- 使用两个操作创建自定义构建器。
- 第一个动作应该是一个 Python 函数,如果它的逻辑如此决定,它可以以某种方式停止进程。
- 第二个操作应该是调用默认构建器,因为如果第一个操作决定可以继续,则应该执行默认构建器。
- 创建一个指向这个名为 release 的自定义构建器的目标。
我需要做的是创建一个工作流,其中一些逻辑作为目标的一部分执行,并决定是否应该执行另一个逻辑。
但我不知道我的想法是否可行,而且我错过了一些我不知道从哪里获得的知识:
- “发布”目标不是输入文件。相反,它是执行由不同操作组成的工作流的触发器。我如何告诉 SCONS“release”参数不是文件?
- 如何捕获在“release”参数之后输入的下一个参数?这是发布号,“发布”目标应使用它来验证内容。 Pseldocode 将是:
def releaseTarget(wantedRelease):
if wantedTarget == "":
interruptHere()
我想知道我应该从哪里开始在 scons 上寻找这种功能。
解决方法
SCons 的方法是使用变量。这将导致调用为:
scons release VERSION=1.2.3
变量包含在 SCons 文档 here 中:
对于 release
,您将使用 Alias
文档 here
如果您打算使用 SCons 做一些无关紧要的事情,则可能值得仔细阅读用户指南和联机帮助页。
另外,请加入我们的 Discord 服务器以寻求帮助,或加入用户邮件列表,或 IRC 频道详情here
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。