我有一个c ++项目,其中包含使用cmake设置的几个可执行文件。通常的工作流程是通过程序包管理器安装所有3rdparty依赖项,并通过cpack在同一台计算机上生成并安装程序包。现在,我想将所有运行时依赖项包含在该软件包中,以便能够将其安装在另一台计算机上,而无需像在构建计算机上那样在该计算机上安装3rdparty依赖项。
我在网络上做了很多研究-没有太大的成功。我为cmake找到了一个称为BundleUtilities的东西,但是找不到关于它的任何入门友好的文档。我什至不知道它是否满足我的需求。
我想利用cmake的好处并生成这种“捆绑的”程序包,而无需任何人工干预或任何其他操作。我不想手动组装和复制3rdparty依赖项。理想的解决方案是使用干净的cmake / cpack解决方案。
编辑:
要澄清:有问题的目标计算机没有Internet连接。
答案 0 :(得分:0)
您确定要执行此操作吗?可能不会变成一个好主意...打包第三方工具实际上是在承担第三方软件的责任,并且随着上游版本不可避免地领先于人们在您的压缩包中发现的东西,而后者可能会变成现实。头痛。考虑一下是否真的可以接受版本冲突,因为已经安装了依赖项。
为什么不只在配置时将cmake调出到系统的软件包管理器? exec_process()命令将为您运行控制台命令。