【CMake】在工程项目中嵌入其他CMake工程的几种方式
0.前言
在把一些辅助功能项目例如plog、googletest等的源码嵌入到当前的项目工程,有以下四种实现方式。以GoogleTest为例进行说明。
1.实现方法
-
将GoogleTest源码下载到本地,从源码编译安装到指定路径,然后再使用静态或者动态链接的方式进行调用
这是最不灵活的一种方法,它使得后续的持续集成很难进行。
因为编译安装时可能依赖本地环境和系统配置等。
并且不能在编译时与该模块最新版本进行同步。 -
将GoogleTest源码直接复制到当前项目工程的源码目录结构中
通常这是最简单的方法,但也是最难保持更新的方法。
由于下载的源码是某个时间节点的固定版本,无法跟踪源码的修复和更新。 -
将GoogleTest添加为当前项目工程的Git submodule
这种方法并不总是可行,或者有些时候不适合这样做,因为Git子模块本身也有其优势及不足。
-
将源码下载作为编译配置过程的一部分
利用CMake语句
file(DOWNLOAD <url> [<file>] [<options>...])
来下载最新版本的GoogleTest模块。然后与项目工程进行集成编译使用。这种方法能够克服前面提到的三种方法的局限性。推荐使用该方法。
(全文完)
参考资料
[1] Generic Build Instructions
[2] CMake » latest release (3.22.1) Documentation » cmake-commands(7) » file
本文作者 :phillee
发表日期 :2022年01月24日
本文链接 :https://www.cnblogs.com/phillee/p/15839108.html
版权声明 :自由转载-非商用-非衍生-保持署名(创意共享3.0许可协议/CC BY-NC-SA 3.0)。转载请注明出处!
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
感谢您的支持
微信支付