如何使用cmake自动第三方库的建设(How to automate building of thi

2019-09-20 11:49发布

我在寻找:下载库提取它应用自定义补丁运行配置运行建立我想建立什么库的命令:

  • OpenSSL的
  • 促进
  • 节约
  • C-战神
  • 卷曲
  • PCRE
  • Nginx的
  • ICU
  • JsonCPP

我想我可以使用外部模块做这些事情: http://cmake.org/cmake/help/v2.8.8/cmake.html#module:ExternalProject

但是,我有如下问题?

  1. 我有不同的类型有不同的目录,蓄。 难道是要建立所有这些库每个不同的目标? 如果是的话这将是痛苦的,因为所有这些库需要一个小时打造。 有没有一种方法,我可以控制它,它只能建一次。 由于库仍然相同,所有这些目标。

  2. 在切换目录,以不同的名称。 CMake的强制所有要重建-ED。 这将是相同的外部库。 如是? 如何解决这个问题呢。 我不想重建库,如果我不改变他们想使用它们,而无需建立他们切换到不同的分支。

Answer 1:

是的,你可以使用CMake的的ExternalProject功能来完成你想做的事情。

当与外部项目组合使用交叉编译,源代码将被一次为每个工具链构建的。 你可以避开重建,如果你在构建的结果登记到源控制系统,并重新签出每一个新的人的机器上,但我不建议这样做。 相反,有你的“设置新的计算机”任务其实是可以允许编译在夜间运行,这也将作为测试机器是实际可用的。 这建立任务可以由系统管理员一个新员工的到来之前推出,或者你可以把它留给新员工,视情况需要。

我不能完全肯定你是问你的第二个问题是什么,但是如果库是不变的,CMake的将检测到它是不变的,而不是重新编译。 通常情况下,源代码将在一个单一的目录树:每个编译版本将在不同的位置来构建。 因此,开发人员只需通过切换目录的访问在任何时间任何编译版本。 这是特别有用,因为它可以让你通过NFS挂载这些目录以嵌入式硬件,等等。



文章来源: How to automate building of third party library using cmake
标签: cmake