我正在尝试在使用SCons构建项目时添加预处理和后处理操作。
SConstruct和SConscript文件位于项目顶部。
预处理操作: 通过调用不同的工具生成代码:->不知道这个预处理后将生成哪些文件(可以创建另一个预处理来决定生成了哪些文件,以便将其提供给SCons);->运行外部脚本(python、pearl脚本),在编译之前执行。
后处理操作:
->运行外部工具、运行外部脚本,应在链接之后执行。
我到目前为止尝试过的:
对于预处理:
- 使用Python中的os.system运行cmd。(正常工作,但我正在寻找“SCons解决方案”) - 使用SCons的AddPreAction(target, action)函数。不幸的是,该函数按照SCons用户手册所述在编译项目后执行:
-使用AddPostAction(target, action)。这很好地完成了任务。
我正在寻找能使SCons意识到这些预处理和后处理的解决方案。
我的问题是:
对于上述要求,使用SCons最佳方法是什么?有没有办法使用SCons内置功能在编译之前执行预处理操作?
SConstruct和SConscript文件位于项目顶部。
预处理操作: 通过调用不同的工具生成代码:->不知道这个预处理后将生成哪些文件(可以创建另一个预处理来决定生成了哪些文件,以便将其提供给SCons);->运行外部脚本(python、pearl脚本),在编译之前执行。
后处理操作:
->运行外部工具、运行外部脚本,应在链接之后执行。
我到目前为止尝试过的:
对于预处理:
- 使用Python中的os.system运行cmd。(正常工作,但我正在寻找“SCons解决方案”) - 使用SCons的AddPreAction(target, action)函数。不幸的是,该函数按照SCons用户手册所述在编译项目后执行:
"The specified pre_action would be executed before scons calls the link command that actually generates
the executable program binary foo, not before compiling the foo.c file into an object file."
对于后处理:-使用AddPostAction(target, action)。这很好地完成了任务。
我正在寻找能使SCons意识到这些预处理和后处理的解决方案。
我的问题是:
对于上述要求,使用SCons最佳方法是什么?有没有办法使用SCons内置功能在编译之前执行预处理操作?