diff options
| author | ruki <waruqi@gmail.com> | 2019-07-27 00:17:29 +0800 |
|---|---|---|
| committer | ruki <waruqi@gmail.com> | 2019-07-27 00:17:29 +0800 |
| commit | 42066f46af45364f429a8ab4abd6f2ed3c9cbff1 (patch) | |
| tree | 8e31c83243fbee5aa06695c11e2396ad7d6e2cbc /zh-cn/package/system_package.md | |
| parent | aaeddf48841d253a97598dd38a6644a289a4ff6b (diff) | |
| download | xmake-docs-42066f46af45364f429a8ab4abd6f2ed3c9cbff1.tar.gz xmake-docs-42066f46af45364f429a8ab4abd6f2ed3c9cbff1.zip | |
update package sidebar
Diffstat (limited to 'zh-cn/package/system_package.md')
| -rw-r--r-- | zh-cn/package/system_package.md | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/zh-cn/package/system_package.md b/zh-cn/package/system_package.md new file mode 100644 index 00000000..eda893e9 --- /dev/null +++ b/zh-cn/package/system_package.md @@ -0,0 +1,73 @@ + +如果觉得上述内置包的管理方式非常不方便,可以通过xmake提供的内置接口`find_packages`。 + +目前此接口支持以下一些包管理支持: + +* vcpkg +* homebrew +* pkg-config + +并且通过系统和第三方包管理工具进行依赖包的安装,然后与xmake进行集成使用,例如我们查找一个openssl包: + +```lua +local packages = find_packages("openssl", "zlib") +``` + +返回的结果如下: + +```lua +{ + {links = {"ssl", "crypto"}, linkdirs = {"/usr/local/lib"}, includedirs = {"/usr/local/include"}}, + {links = {"z"}, linkdirs = {"/usr/local/lib"}, includedirs = {"/usr/local/include"}} +} +``` + +如果查找成功,则返回一个包含所有包信息的table,如果失败返回nil + +这里的返回结果可以直接作为`target:add`, `option:add`的参数传入,用于动态增加`target/option`的配置: + +```lua +option("zlib") + set_showmenu(true) + before_check(function (option) + option:add(find_packages("openssl", "zlib")) + end) +``` + +```lua +target("test") + on_load(function (target) + target:add(find_package("openssl", "zlib")) + end) +``` + +如果系统上装有`homebrew`, `pkg-config`等第三方工具,那么此接口会尝试使用它们去改进查找结果。 + +另外,我们也可以从指定的包管理器查找包: + +```lua +find_packages("brew::pcre2/libpcre2-8", "vcpkg::zlib") +``` + +更完整的使用描述,请参考:[find_packages](/zh-cn/manual/builtin_modules?id=find_packages)接口文档。 + +## homebrew集成支持 + +由于homebrew一般都是把包直接装到的系统中去了,因此用户不需要做任何集成工作,`find_packages`就已经原生无缝支持。 + +## vcpkg集成支持 + +目前xmake v2.2.2版本已经支持了vcpkg,用户只需要装完vcpkg后,执行`$ vcpkg integrate install`,xmake就能自动从系统中检测到vcpkg的根路径,然后自动适配里面包。 + +当然,我们也可以手动指定vcpkg的根路径来支持: + +```console +$ xmake f --vcpkg=f:\vcpkg +``` + +或者我们可以设置到全局配置中去,避免每次切换配置的时候,重复设置: + +```console +$ xmake g --vcpkg=f:\vcpkg +``` + |
