通过Scons控制distutils
我有一个用C++写的库,使用Scons来构建,最后这个库会被链接到一个Python扩展里。
一旦我用scons构建好了这个库,我就写了一个标准的setup.py脚本,用来构建和安装这个扩展。
我主要的问题是,setup.py并不能识别库是否被重新构建过,它只会在扩展的代码发生变化时才会注意到。所以每次我重新构建库的时候,都得先“清理”一下扩展,然后再重新构建。此外,如果我改变了目录结构,我希望只需要编辑Scons的文件就可以了。最后,直接调用scons会更方便,而不是每次都要先调用scons再调用setup.py。
有没有人知道怎么把distutils集成到Scons里,这样就能利用Scons对哪些文件需要重新构建的了解呢?
2 个回答
0
我已经成功创建了一个SConstruct文件,用来编译用Pyrex写的Python扩展。主要的思路是从distutils获取合适的C编译器标志,然后设置你的环境。
可以查看scons wiki上的这些页面: