从Python脚本调用scons

Neh*_*kar 8 python scons

我是scons和Python的新手.我想知道是否有办法在python脚本中调用scons.

我的python脚本从用户接受一个目录列表,其中要编译的代码位于其中(除了执行其他一些非平凡的事情).它还生成一个字符串,用作scons创建的可执行文件的名称.

我想将这些信息从我的python脚本传递给scons,然后调用scons.有一个简单的方法吗?

我可以想到以下几种可能性:

  • 使用subprocess.call("scons"...)我不确定scons是否接受我需要传递的所有信息作为命令行参数
  • 让python脚本写入文件.让SConscript解析文件并获取传递的信息.

Bra*_*ady 2

我已经使用subprocess.call()python 函数来封装我正在处理的特定项目所需的有点长且复杂的命令行参数来完成此操作。有些人认为调用应该更简单,以便不需要封装它,但这是一个不同的主题:)

代替使用命令行参数可以考虑的一种选择是使用此处SCONSFLAGS提到的环境变量。就我个人而言,我宁愿不使用此选项。

您需要的所有选项都可以作为命令行选项传递。自定义和处理 SCons 命令行参数的一个好方法是使用 SCons AddOption()函数。此外,您可以variable=value使用 SCons ARGUMENTS 字典获取简单变量。其他相关的 SCons 命令行函数是GetOption()SetOption()

关于传递可执行文件名称的字符串:SCons 可能不喜欢这样。至少,考虑一下您使用特定的可执行字符串执行脚本一次,然后使用不同的字符串执行第二次,然后您想要清理,如果 SCons 未使用相同的可执行文件名称执行,则最终可能会留下可执行文件。