基于xmake,助力打造C/C++依赖包生态
xmake集成了内置的远程包依赖管理,用户只需要简单地在项目中添加自己所需要的包和版本,即可自动下载和集成对应的包到项目中,并且实现编译和链接。
例如:
```lua
add_requires("libuv master", "ffmpeg", "zlib 1.20.*")
add_requires("tbox >1.6.1", {optional = true, debug = true})
add_requires("boost", {alias = "boost_context", configs = {context = true}})
target("test")
set_kind("binary")
add_files("src/*.c")
add_packages("libuv", "ffmpeg", "tbox", "boost_context", "zlib")
```
xmake的包仓库设计之初,就考虑到了语义版本支持,以及依赖包的跨平台支持,只要包自身能支持的平台,都可以集成进来,比如zlib包,在xmake中使用,iphoneos, android以及mingw平台下都是完全可用的。
用户只需要简单的切下构建平台:
```bash
xmake f -p iphoneos -a arm64
xmake
note: try installing these packages (pass -y to skip confirm)?
in xmake-repo:
-> zlib 1.2.11
please input: y (y/n)
=> download https://downloads.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz .. ok
=> install zlib 1.2.11 .. ok
```
就可以对iphoneos平台下载集成`add_requires`中对应的包,xmake的最终目标,是打造一个跨平台的包仓库,用户不再需要满地找c/c++库,然后研究各种平台的移植,只需要简单的添加上包依赖,即可在各个平台都能方便使用。
当然了,目前xmake的官方仓库还在发展初期,里面的包还很少,支持的平台也不是很完善,因此,这里我简单介绍下用户如何去自己制作和上传自己需要的c/c++包,并如何提交到我们的仓库中(也可以自建私有仓库),
希望有兴趣的小伙伴可以帮忙贡献一份微薄之力,一起共同打造和建立c/c++依赖包生态。
* [项目源码](https://github.com/xmake-io/xmake)
* [官方文档](https://xmake.io/#/zh/)
完整原文: https://tboox.org/cn/2019/08/09/xmake-upload-package/