在`scons -c`上执行自定义操作

时间:2012-08-24 14:24:30

标签: python makefile scons

我创建了一个SCons构建器,它将Makefile文件作为源并调用它来生成“东西”。

(主要是由其他库编写的Makefile,所以我不必选择用SCons替换它。)

到目前为止,它运作良好,但现在我也想让scons -c工作。

我的MakefileCallBuilder只有一个虚拟目标作为目标,因此scons -c不会真正清理任何东西。

有没有办法告诉SCons我想要在清洁时调用make cleanmake distclean

1 个答案:

答案 0 :(得分:3)

由于这个确切的问题,我一直在拔头发。我终于创造了一种原始的解决方案,但有效。以下是SConstruct文件中进行清理的部分:

import subprocess

...

# Call make to clean
if env.GetOption('clean'):
    subprocess.call(['make', 'clean'])  

基本上,由于Scons没有提供任何方式来调用make clean,我通过Python的subprocess.call()来完成它。