我有一个c ++项目,其中包含一些使用cmake设置的可执行文件。通常的工作流程是通过包管理器安装所有3rdparty依赖项,通过cpack在同一台机器上构建和安装包。现在,我想在该包中包含所有运行时依赖项,以便能够在另一台机器上安装它,而无需在构建机器上安装第三方依赖项。
我在网上做了很多研究 - 没有太大的成功。我为cmake找到了一个名为BundleUtilities的东西,但找不到任何关于它的入门友好文档。我甚至不知道它是否符合我的需要。
我想使用cmake的好处并生成这样的“捆绑”包,无需任何人工干预或任何事情。我不想手动组装和复制第三方依赖项。对于这个问题,理想的是干净的cmake / cpack解决方案。
编辑:
澄清:有问题的目标机器没有互联网连接。
你真的确定要这么做吗?它可能不会是一个好主意......打包第三方工具实际上是对第三方软件负责,并且因为上游版本不可避免地超出人们在你的tarball中找到的可以变成真实的东西头痛。考虑您是否真的可以看到版本冲突,因为您的依赖项已安装。
为什么不在配置时让cmake调用系统的包管理器? exec_process()命令将为您运行控制台命令。