第11章 打包项目

本章的主要内容有:

  • 生成源代码和二进制包
  • 使用CMake/pybind11构建的C++/Python项目,通过PyPI发布
  • 使用CMake/CFFI构建C/Fortran/Python项目,通过PyPI发布
  • 以Conda包的形式发布一个简单的项目
  • 将Conda包作为依赖项发布给项目

目前为止,已经从源代码编译并安装了软件包——这意味着可以通过Git获取项目,并手动执行配置、构建、测试和安装。然而,在实际中,软件包通常是使用管理器来安装的,比如Apt、DNF、Pacman、pip和Conda。我们需要以各种格式发布我们的代码项目——作为源文件或二进制安装程序。

下图显示了使用CMake的项目的各个阶段,我们现在方案就是其中的打包时(PI):

第11章 打包项目 - 图1

本章中,我们将探讨不同的打包策略。首先,讨论使用CMake中的工具CPack进行打包,还提供打包和上传CMake项目到Python包索引(PyPI, https://pypi.org)和Anaconda云(https://anaconda.org )的方法,这些都是通过包管理器pip和Conda (https://conda.io/docs/ )分发包的平台。对于PyPI,我们将演示如何打包和分发混合C++/Python或C/Fortran/Python的项目。对于Conda,我们将展示如何对依赖于其他库的C++项目进行打包。