将SWIG与CMake和distutils相结合

时间:2016-11-24 20:23:29

标签: python c++ swig distutils

我有一个SWIG项目,我目前正用于Python绑定。我使用CMake作为构建系统,我有点困惑我应该如何处理SWIG。

在SWIG文档的一个部分中,它告诉how to use SWIG with CMake。到目前为止,这是我一直在做的,它的工作相对较好,但在我尝试安装Python模块时会导致一些问题。我回顾了SWIG文档及其recommends using distutils for Python。再看一下,似乎distutils可以directly handle SWIG interface files

这些似乎有点矛盾,因为distutils方法将处理构建和安装,因此使用CMake和distutils将有两个系统构建绑定。我希望使用distutils会使安装比我必须通过CMake安装到当前环境的环节更容易。

我有两个主要问题:

  1. 有没有一种首选的处理方法?我发现的文档似乎有冲突。

  2. 在语言之间使用distutils方法是否可移植?如果我为另一种语言生成绑定,那么类似于distutils的东西是否可用于构建和安装该语言的绑定,或者我可能必须将该逻辑嵌入到CMake中?如果后者是这种情况,我会想象如果某些语言的包管理器构建了绑定并且其他语言必须在CMake系统中,那将会有点混乱。我的语言绑定应该是将C ++代码和SWIG接口文件作为依赖项的单独项目吗?

  3. 更新:前段时间,我整理了一个example on Github,演示了使用SWIG和CMake与Python。

0 个答案:

没有答案