在我的CMake C ++项目中依赖基于make的C库的最简洁方法

时间:2016-01-23 14:30:32

标签: c++ cmake makefile

我正在开发一个C ++项目(我正在使用CMake),需要依赖像这样的C库(但使用make):https://github.com/RoaringBitmap/CRoaring < / p>

对我来说,将该库集成到我的项目中最简洁的方法是什么?

一个选项是将该代码导入到我的源代码树中,为该外部依赖项创建一个CMakeLists.txt并将其用作CMake子模块。但是我不想这样做,因为那个项目可能会发展,我只想把这些代码作为git子模块依赖,而不是真正提交到我的存储库。

1 个答案:

答案 0 :(得分:0)

如果你使用 execute_process 命令进入CRoaring的源并使用 execute_process 命令调用CMakeLists.txt中的外部命令,你可以在CMake中使用make的构建系统:

execute_process

使用INSTALL_PREFIX,您可以指示编译该库的位置,然后cmake将使用它。

这也意味着,只要你触发configure,make编译就会开始,虽然我想你可以控制一下。如果您想避免 add_custom_command 可以帮助您:

add_custom_command

对于Commander Genius,我们在构建Windows版本和使用 icotool 时使用了这些,因此可执行文件会在 exe 中嵌入应用程序图标。

另一种选择是使用 ExternalProject ,就像Tsyvarev在类似文章中指出的那样:

ExternalProject

然而,我不确定这个电话是否足够灵活以满足您的需求。它有很多选择。

因此,使用CMake的最简洁方法实际上取决于您需要为项目做些什么。