在源代码树中包含第三方库
我的 CMake C++ 项目依赖于几个商业库(仅库和标头可用)。我想要一种简单的方法将这些包包含在我的源代码树中。
我尝试了以下选项:
- 使用 svn:externals 并在源树的 thirdparty 文件夹中提供这些库。优点:简单。缺点:下载速度慢,要么全有要么全无。
- 有一个自述文件,详细说明了我的 CMake 中的哪个选项需要什么包。开发人员必须下载并解压到正确的位置。优点:下载速度快,仅选择必要的包。缺点:复杂。
有没有办法让我自动将这些包部署给开发人员?
我想要的工作流程:
- 开发人员在 CMake 中选择一个选项,例如 USE_LIBRARY_A
- 开发人员点击“配置
- 包”被下载并放在源树中的正确位置
- 开发人员点击“生成
- 解决方案/Makefile”已准备好编译
我想我想要的类似于 easy_install 中的Python 或 Ruby 中的 rubygems。
My CMake C++ project depends on several commercial libraries (only libs and headers are available). I want an easy way to include these packages in my source tree.
I have tried the following options:
- Use svn:externals and provide these libraries in a thirdparty folder of the source tree. Pros: easy. Cons: slow download, all or nothing.
- Has a README file detailing what package is required for what option in my CMake. Developers will have to download and unpack to the right place. Pros: fast download, select only the package necessary. Cons: complicated.
Is there a way for me to deploy these packages to the developers automatically?
The workflow that I want:
- Developer choose an option in CMake e.g. USE_LIBRARY_A
- Developer hit Configure
- Package is downloaded and put in the right place in the source tree
- Developer hit Generate
- Solution/Makefile is ready for compilation
I guess what I want is similar to easy_install in Python or rubygems in Ruby.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
可以通过将第三方库添加为 CMake 外部项目。
ExternalProject_Add
命令可让您自动下载、构建和安装第三方库。The desired workflow can be achieved by adding the third party libraries as CMake external projects.
The
ExternalProject_Add
command lets you automatically download, build and install third-party libraries.