2011-02-13 105 views
4

我的CMake C++项目依赖于多个商业库(只有库和头文件可用)。我想要一个简单的方法将这些软件包包含在我的源代码树中。在源代码树中包含第三方库

我曾尝试以下选项:

  1. 使用svn:外部组件,并在源代码树的第三方文件夹提供这些库。优点:容易。缺点:缓慢下载,全部或没有。
  2. 有一个README文件,详细说明了我的CMake中的选项需要哪些软件包。开发人员必须下载并解压到正确的位置。优点:快速下载,只选择必要的软件包。缺点:复杂。

有没有办法让我自动部署这些软件包给开发者?

我需要的工作流程:

  1. 开发者选择的CMake例如一个选项USE_LIBRARY_A
  2. 开发者点击设置
  3. 包下载并放在正确的位置在源代码树
  4. 开发商打生成
  5. 解决方案/ Makefile文件已准备好编译

我想我想要什么类似于Python中的easy_install或Ruby中的rubygems。

+1

听起来这更像是关于您的VCS而不是关于CMake。确保你有一些方法来记录在你自己的项目时间表的不同点上使用的外部库的版本(例如,hg中的subrepos处理这个),这样你就可以1)正确地获得项目在特定点的状态, 2)根据项目需要升级或避免升级这些外部库(包括跨多个分支机构)。 – 2011-02-13 23:56:29

回答

1

想要的工作流程可以通过将第三方库添加为CMake external projects来实现。

ExternalProject_Add命令可让您自动下载,构建和安装第三方库。