ruki 5 月之前
父節點
當前提交
71357cbffd

+ 22 - 22
docs/zh/guide/package-management/package-distribution.md

@@ -8,7 +8,7 @@ outline: deep
 
 ### 仓库包结构
 
-在制作自己的包之前,我们需要先了解下一个包仓库的结构,不管是官方包仓库,还是自建私有包仓库,结构都是相同的:
+在制作自己的包之前,我们需要先了解包仓库的结构,无论是官方包仓库还是自建私有包仓库,结构都是相同的:
 
 ```
 xmake-repo
@@ -17,15 +17,15 @@ xmake-repo
     - z/zlib/xmake.lua
 ```
 
-通过上面的结构,可以看到每个包都会有个xmake.lua用于描述它的安装规则,并且根据`z/zlib`两级子目录分类存储,方便快速检索。
+通过上面的结构,可以看到每个包都会有个 xmake.lua 用于描述它的安装规则,并且根据 `z/zlib` 两级子目录分类存储,方便快速检索。
 
 ### 包描述说明
 
-关于包的描述规则,基本上都是在它的xmake.lua里面完成的,这跟项目工程里的xmake.lua描述很类似,不同的是描述域仅支持`package()`,
+关于包的描述规则,基本上都是在它的 xmake.lua 里面完成的,这跟项目工程里的 xmake.lua 描述很类似,不同的是描述域仅支持 `package()`,
 
-不过,在项目xmake.lua里面,也可以直接添加`package()`来内置包描述的,连包仓库都省了,有时候这样会更加方便。
+不过,在项目 xmake.lua 里面,也可以直接添加 `package()` 来内置包描述的,连包仓库都省了,有时候这样会更加方便。
 
-首先,我们先拿zlib的描述规则,来直观感受下,这个规则可以在[xmake-repo/z/zlib/xmake.lua](https://github.com/xmake-io/xmake-repo/blob/master/packages/z/zlib/xmake.lua)下找到。
+首先,我们先拿 zlib 的描述规则,来直观感受下,这个规则可以在 [xmake-repo/z/zlib/xmake.lua](https://github.com/xmake-repo/z/zlib/xmake.lua) 下找到。
 
 ```
 package("zlib")
@@ -63,7 +63,7 @@ package("zlib")
     end)
 ```
 
-这个包规则对windows, linux, macosx, iphoneos,mingw等平台都添加了安装规则,基本上已经做到了全平台覆盖,甚至一些交叉编译平台,算是一个比较典型的例子了。
+这个包规则对 windows、linux、macosx、iphoneos、mingw 等平台都添加了安装规则,基本上已经做到了全平台覆盖,甚至一些交叉编译平台,算是一个比较典型的例子了。
 
 当然,有些包依赖源码实现力度,并不能完全跨平台,那么只需对它支持的平台设置安装规则即可。
 
@@ -71,11 +71,11 @@ package("zlib")
 
 ### 扩展配置参数
 
-详见:[add_configs](/zh/api/description/package-dependencies#add-configs)
+详见:[add_configs](/zh/api/description/package-dependencies#add-configs)
 
 ### 内置配置参数
 
-除了可以通过[add_configs](/zh/api/description/package-dependencies#add-configs)设置一些扩展的配置参数以外,xmake还提供了一些内置的配置参数,可以使用
+除了可以通过 [add_configs](/zh/api/description/package-dependencies#add-configs) 设置一些扩展的配置参数以外,xmake 还提供了一些内置的配置参数,可以使用
 
 #### 启用调试包
 
@@ -101,7 +101,7 @@ end)
 add_requires("xxx", {configs = {vs_runtime = "MT"}})
 ```
 
-通常情况下,通过`import("package.tools.autoconf").install`等内置工具脚本安装的包,内部都对vs_runtime自动处理过了。
+通常情况下,通过 `import("package.tools.autoconf").install` 等内置工具脚本安装的包,内部都对 vs_runtime 自动处理过了。
 
 但是如果是一些特殊的源码包,构建规则比较特殊,那么需要自己处理了:
 
@@ -113,7 +113,7 @@ end)
 
 ### 添加环境变量
 
-对于一些库,里面也带了可执行的工具,如果需要在集成包的时候使用这些工具,那么也可以设置上对应PATH环境变量:
+对于一些库,里面也带了可执行的工具,如果需要在集成包的时候使用这些工具,也可以设置上对应 PATH 环境变量:
 
 ```lua
 package("luajit")
@@ -125,7 +125,7 @@ package("luajit")
     end)
 ```
 
-而在项目工程中,只有通过`add_packages`集成对应的包后,对应的环境变量才会生效。
+而在项目工程中,只有通过 `add_packages` 集成对应的包后,对应的环境变量才会生效。
 
 ```lua
 add_requires("luajit")
@@ -139,7 +139,7 @@ target("test")
 
 ### 安装二进制包
 
-xmake也支持直接引用二进制版本包,直接安装使用,例如:
+xmake 也支持直接引用二进制版本包,直接安装使用,例如:
 
 ```lua
 if is_plat("windows") then
@@ -156,7 +156,7 @@ end)
 
 ### 本地测试
 
-如果在本地xmake-repo仓库中,已经添加和制作好了新的包,可以在本地运行测试下,是否通过,如果测试通过,即可提交pr到官方仓库,请求merge。
+如果在本地 xmake-repo 仓库中,已经添加和制作好了新的包,可以在本地运行测试下是否通过,如果测试通过,即可提交 PR 到官方仓库,请求 merge。
 
 我们可以执行下面的脚本进行测试指定包:
 
@@ -165,16 +165,16 @@ cd xmake-repo
 xmake l scripts/test.lua -v -D zlib
 ```
 
-上面的命令会强制重新下载和安装zlib包,测试整个安装流程是否ok,加上`-v -D`是为了可以看到完整详细的日志信息和出错信息,方便调试分析。
+上面的命令会强制重新下载和安装 zlib 包,测试整个安装流程是否 ok,加上 `-v -D` 是为了可以看到完整详细的日志信息和出错信息,方便调试分析。
 
-如果网络环境不好,不想每次测试都去重新下载所有依赖,可以加上`--shallow`参数来执行,这个参数告诉脚本,仅仅重新解压本地缓存的zlib源码包,重新执行安装命令,但不会下载各种依赖。
+如果网络环境不好,不想每次测试都去重新下载所有依赖,可以加上 `--shallow` 参数来执行,这个参数告诉脚本,仅仅重新解压本地缓存的 zlib 源码包,重新执行安装命令,但不会下载各种依赖。
 
 ```sh
 cd xmake-repo
 xmake l scripts/test.lua -v -D --shallow zlib
 ```
 
-如果我们想测试其他平台的包规则是否正常,比如: android, iphoneos等平台,可以通过`-p/--plat`或者`-a/--arch`来指定。
+如果我们想测试其他平台的包规则是否正常,比如 android、iphoneos 等平台,可以通过 `-p/--plat` 或者 `-a/--arch` 来指定。
 
 ```sh
 cd xmake-repo
@@ -184,9 +184,9 @@ xmake l scripts/test.lua -v -D --shallow -p android --ndk=/xxxx zlib
 
 ## 生成远程包 {#generate-remote-package}
 
-除了本地包格式,`xmake package` 现在也支持生成远程包,便于用户将他们快速提交到远程仓库。
+除了本地包格式,`xmake package` 现在也支持生成远程包,便于用户将快速提交到远程仓库。
 
-我们只需要在打包时候,修改包格式。
+我们只需要在打包时候,修改包格式。
 
 ```sh
 $ xmake package -f remote
@@ -217,7 +217,7 @@ package("foo")
 
 包定义配置相比本地包,多了实际的安装逻辑,以及 urls 和 versions 的设置,
 
-我们也能够通过附加参数,去修改 urlsversions 等配置值,例如:
+我们也能够通过附加参数,去修改 urlsversions 等配置值,例如:
 
 ```sh
 $ xmake package -f remote --url=https://xxxx/xxx.tar.gz --shasum=xxxxx --homepage=xxxxx`
@@ -229,7 +229,7 @@ xmake 也会从 target 的 `set_license` 和 `set_version` 等配置中读取相
 
 目前这个特性刚完成不久,目前官方仓库的包还不是很多,有些包也许还不支持部分平台,不过这并不是太大问题,后期迭代几个版本后,我会不断扩充完善包仓库。
 
-如果你需要的包,当前的官方仓库还没有收录,可以提交issues或者自己可以在本地调通后,贡献提交到官方仓库:[xmake-repo](https://github.com/xmake-io/xmake-repo)
+如果你需要的包,目前的官方仓库还没有收录,可以提交 issues 或者自己可以在本地调通后,贡献提交到官方仓库:[xmake-repo](https://github.com/xmake-io/xmake-repo)
 
 详细的贡献说明,见:[CONTRIBUTING.md](https://github.com/xmake-io/xmake-repo/blob/master/CONTRIBUTING.md)
 
@@ -237,13 +237,13 @@ xmake 也会从 target 的 `set_license` 和 `set_version` 等配置中读取相
 
 ## 分发和使用自定义包规则 {#custom-rule-distribution}
 
-2.7.2 版本之后,我们可以在包管理仓库中,添加自定义构规则脚本,实现跟随包进行动态下发和安装。
+2.7.2 版本之后,我们可以在包管理仓库中,添加自定义构规则脚本,实现跟随包进行动态下发和安装。
 
 我们需要将自定义规则放到仓库的 `packages/x/xxx/rules` 目录中,它会跟随包一起被安装。
 
 但是,它也存在一些限制:
 
-- 在包中规则,我们不能添加 `on_load`, `after_load` 脚本,但是通常我们可以使用 `on_config` 来代替。
+- 在包中规则,我们不能添加 `on_load`、`after_load` 脚本,但是通常可以使用 `on_config` 来代替。
 
 ### 添加包规则
 

+ 7 - 7
docs/zh/guide/package-management/package-management-in-project.md

@@ -1,8 +1,8 @@
 # 工程内包管理命令 {#package-management-in-project}
 
-包管理命令`$ xmake require` 可用于手动显示的下载编译安装、卸载、检索、查看包信息。
+包管理命令 `$ xmake require` 可用于手动显式地下载、编译、安装、卸载、检索和查看包信息。
 
-`xmake require` 仅用于当前工程,我们也提供了更加方便的独立 `xrepo` 包管理器命令,来全局对包进行安装,卸载和查找管理
+`xmake require` 仅用于当前工程,我们也提供了更为便捷的独立 `xrepo` 包管理器命令,用于全局安装、卸载和查找包
 
 详细文档见:[Xrepo 命令使用入门](/zh/guide/package-management/xrepo-cli)。
 
@@ -18,7 +18,7 @@ $ xmake require tbox
 $ xmake require tbox "~1.6"
 ```
 
-强制重新下载安装,并显示详细安装信息:
+强制重新下载安装,并显示详细安装信息:
 
 ```sh
 $ xmake require -f -v tbox "1.5.x"
@@ -30,7 +30,7 @@ $ xmake require -f -v tbox "1.5.x"
 $ xmake require --extra="{debug=true,config={small=true}}" tbox
 ```
 
-安装debug包,并传递`small=true`的编译配置信息到包中
+安装 debug 包,并传递 `small=true` 的编译配置信息到包中。
 
 ## 卸载指定包
 
@@ -38,7 +38,7 @@ $ xmake require --extra="{debug=true,config={small=true}}" tbox
 $ xmake require --uninstall tbox
 ```
 
-这会完全卸载删除包文件。
+这会完全卸载删除包文件。
 
 ## 查看包详细信息
 
@@ -52,13 +52,13 @@ $ xmake require --info tbox
 $ xmake require --search tbox
 ```
 
-这个是支持模糊搜素以及lua模式匹配搜索的
+该命令支持模糊搜索以及 alua 模式匹配搜索
 
 ```sh
 $ xmake require --search pcr
 ```
 
-会同时搜索到pcre, pcre2等包。
+会同时搜索到 pcre、pcre2 等包。
 
 ## 列举当前已安装的包
 

+ 8 - 7
docs/zh/guide/package-management/using-local-packages.md

@@ -2,7 +2,7 @@
 
 ## 生成本地包
 
-2.5.5 版本之后,我们提供了一种新的本地包打包方案,将会更加无缝对接 `add_requires` 和 `add_packages`。
+2.5.5 版本之后,我们提供了一种新的本地包打包方案,将会更加无缝对接 `add_requires` 和 `add_packages`。
 
 我们执行 `xmake package` 命令就能够生成默认的新版打包格式。
 
@@ -11,7 +11,7 @@ $ xmake package
 package(foo): build/packages/f/foo generated
 ```
 
-它生 `build/packages/f/foo/xmake.lua` 文件,内容如下:
+它会生 `build/packages/f/foo/xmake.lua` 文件,内容如下:
 
 ```lua
 package("foo")
@@ -32,7 +32,7 @@ package("foo")
     end)
 ```
 
-其实就是采用 `package()` 来定义描述本地包,就跟远程包一样。
+其实就是采用 `package()` 来定义描述本地包,远程包一样。
 
 而生成的目录结构如下:
 
@@ -67,7 +67,7 @@ target("bar")
 
 其中,add_repositories 配置指定本地包的仓库根目录,然后就可以通过 `add_requires` 来引用这个包了。
 
-另外,生成的本地包还有一个特性,就是支持 `target/add_deps`,会自动关联多个包的依赖关系,集成时候,也会自动对接所有依赖链
+另外,生成的本地包还有一个特性,就是支持 `target/add_deps`,会自动关联多个包的依赖关系,集成时也会自动对接所有依赖链。
 
 这里有完整的[测试例子](https://github.com/xmake-io/xmake/blob/dev/tests/actions/package/localpkg/test.lua)。
 
@@ -119,7 +119,7 @@ $ xmake l find_package cmake::LibXml2
 
 ### 在项目中集成包
 
-如果我们在 xmake.lua 项目配置中集成查找 cmake 的依赖包,通常不需要直接使用 find_package,我们可以用更加通用、简单的包集成方式。
+如果我们在 xmake.lua 项目配置中集成查找 cmake 的依赖包,通常不需要直接使用 find_package,可以用更加通用、简单的包集成方式。
 
 ```lua
 add_requires("cmake::ZLIB", {alias = "zlib", system = true})
@@ -129,8 +129,7 @@ target("test")
     add_packages("zlib")
 ```
 
-我们指定 `system = true` 告诉 xmake 强制从系统中调用 cmake 查找包,如果找不到,不再走安装逻辑,因为 cmake 没有提供类似 vcpkg/conan 等包管理器的安装功能,
-只提供了包查找特性。
+我们指定 `system = true` 告诉 xmake 强制从系统中调用 cmake 查找包,如果找不到,不再走安装逻辑,因为 cmake 没有提供类似 vcpkg/conan 等包管理器的安装功能,只提供了包查找特性。
 
 ### 指定版本
 
@@ -205,3 +204,5 @@ xmake 在查找 cmake 包的时候,内部会自动追加下面的配置。
 ```cmake
 find_package(ABC CONFIG REQUIRED)
 ```
+
+这样会同时查找到 pcre、pcre2 等包。

+ 33 - 33
docs/zh/guide/package-management/using-official-packages.md

@@ -4,7 +4,7 @@ outline: deep
 
 # 使用官方包 {#using-official-packages}
 
-这个在2.2.2版本后已经初步支持,用法上更加的简单,只需要设置对应的依赖包就行了,例如:
+该功能在 2.2.2 版本后已初步支持,用法上更加简单,只需设置对应的依赖包即可,例如:
 
 ```lua
 add_requires("tbox 1.6.*", "libpng ~1.16", "zlib")
@@ -15,7 +15,7 @@ target("test")
     add_packages("tbox", "libpng", "zlib")
 ```
 
-上面的`add_requires`用于描述当前项目需要的依赖包,而`add_packages`用于应用依赖包到test目标,只有设置这个才会自动追加links, linkdirs, includedirs等设置。
+上面的 `add_requires` 用于描述当前项目需要的依赖包,而 `add_packages` 用于将依赖包应用到 test 目标,只有设置这个才会自动追加 links、linkdirs、includedirs 等设置。
 
 然后直接执行编译即可:
 
@@ -23,18 +23,18 @@ target("test")
 $ xmake
 ```
 
-xmake会去远程拉取相关源码包,然后自动编译安装,最后编译项目,进行依赖包的链接,具体效果见下图:
+xmake 会去远程拉取相关源码包,然后自动编译安装,最后编译项目,进行依赖包的链接,具体效果见下图:
 
 <img src="/assets/img/index/package_manage.png" width="80%" />
 
-关于包依赖管理的更多相关信息和进展见相关issues:[Remote package management](https://github.com/xmake-io/xmake/issues/69)
+关于包依赖管理的更多相关信息和进展见相关 issues:[Remote package management](https://github.com/xmake-io/xmake/issues/69)
 
 ## 目前支持的特性
 
-* 语义版本支持,例如:">= 1.1.0 < 1.2", "~1.6", "1.2.x", "1.*"
+* 语义版本支持,例如:">= 1.1.0 < 1.2"、"~1.6"、"1.2.x"、"1.*"
 * 提供官方包仓库、自建私有仓库、项目内置仓库等多仓库管理支持
 * 跨平台包编译集成支持(不同平台、不同架构的包可同时安装,快速切换使用)
-* debug依赖包支持,实现源码调试
+* debug 依赖包支持,实现源码调试
 
 ## 依赖包处理机制
 
@@ -42,33 +42,33 @@ xmake会去远程拉取相关源码包,然后自动编译安装,最后编译
 
 <img src="/assets/img/index/package_arch.png" width="80%" />
 
-1. 优先检测当前系统目录、第三方包管理下有没有存在指定的包,如果有匹配的包,那么就不需要下载安装了 (当然也可以设置不使用系统包)
-2. 检索匹配对应版本的包,然后下载、编译、安装(注:安装在特定xmake目录,不会干扰系统库环境)
+1. 优先检测当前系统目录、第三方包管理下是否存在指定的包,如果有匹配的包,那么就不需要下载安装了(当然也可以设置不使用系统包)
+2. 检索匹配对应版本的包,然后下载、编译、安装(注:安装在特定 xmake 目录,不会干扰系统库环境)
 3. 编译项目,最后自动链接启用的依赖包
 
 ## 快速上手
 
-新建一个依赖tbox库的空工程:
+新建一个依赖 tbox 库的空工程:
 
 ```sh
 $ xmake create -t console_tbox test
 $ cd test
 ```
 
-执行编译即可,如果当前没有安装tbox库,则会自动下载安装后使用:
+执行编译即可,如果当前没有安装 tbox 库,则会自动下载安装后使用:
 
 ```sh
 $ xmake
 ```
 
-切换到iphoneos平台进行编译,将会重新安装iphoneos版本的tbox库进行链接使用:
+切换到 iphoneos 平台进行编译,将会重新安装 iphoneos 版本的 tbox 库进行链接使用:
 
 ```sh
 $ xmake f -p iphoneos
 $ xmake
 ```
 
-切换到android平台arm64-v8a架构编译:
+切换到 android 平台 arm64-v8a 架构编译:
 
 ```sh
 $ xmake f -p android [--ndk=~/android-ndk-r16b]
@@ -77,7 +77,7 @@ $ xmake
 
 ## 语义版本设置
 
-xmake的依赖包管理是完全支持语义版本选择的,例如:"~1.6.1",对于语义版本的具体描述见:[https://semver.org/](https://semver.org/)
+xmake 的依赖包管理完全支持语义版本选择,例如:"~1.6.1",关于语义版本的具体描述见:[https://semver.org/](https://semver.org/)
 
 一些语义版本写法:
 
@@ -86,15 +86,15 @@ add_requires("tbox 1.6.*", "pcre 1.3.x", "libpng ^1.18")
 add_requires("libpng ~1.16", "zlib 1.1.2 || >=1.2.11 <1.3.0")
 ```
 
-目前xmake使用的语义版本解析器是[uael](https://github.com/uael)贡献的[sv](https://github.com/uael/sv)库,里面也有对版本描述写法的详细说明,可参考:[版本描述说明](https://github.com/uael/sv#versions)
+当前 xmake 使用的语义版本解析器是 [uael](https://github.com/uael) 贡献的 [sv](https://github.com/uael/sv) 库,里面也有对版本描述写法的详细说明,可参考:[版本描述说明](https://github.com/uael/sv#versions)
 
-当然,如果我们对当前的依赖包的版本没有特殊要求,那么可以直接这么写:
+当然,如果我们对当前的依赖包的版本没有特殊要求,可以直接这样写:
 
 ```lua
 add_requires("tbox", "libpng", "zlib")
 ```
 
-这会使用已知的最新版本包,或者是master分支的源码编译的包,如果当前包有git repo地址,我们也能指定特定分支版本:
+这会使用已知的最新版本包,或者是 master 分支源码编译的包。如果当前包有 git repo 地址,也能指定特定分支版本:
 
 ```lua
 add_requires("tbox master")
@@ -105,8 +105,8 @@ add_requires("tbox dev")
 
 ### 可选包设置
 
-如果指定的依赖包当前平台不支持,或者编译安装失败了,那么xmake会编译报错,这对于有些必须要依赖某些包才能工作的项目,这是合理的。
-但如果有些包是可选依赖,即使没有也可以正常编译使用的话,可以设置为可选包:
+如果指定的依赖包当前平台不支持,或者编译安装失败,xmake 会编译报错。对于必须依赖某些包才能工作的项目,这是合理的。
+但如果有些包是可选依赖,即使没有也可以正常编译使用,可以设置为可选包:
 
 ```lua
 add_requires("tbox", {optional = true})
@@ -114,7 +114,7 @@ add_requires("tbox", {optional = true})
 
 ### 禁用系统库
 
-默认设置,xmake会优先检测系统库是否存在(如果没设置版本要求)如果用户完全不想使用系统库以及第三方包管理提供的库,那么可以设置:
+默认设置,xmake 会优先检测系统库是否存在(如果没设置版本要求)如果用户完全不想使用系统库以及第三方包管理提供的库,可以设置:
 
 ```lua
 add_requires("tbox", {system = false})
@@ -122,13 +122,13 @@ add_requires("tbox", {system = false})
 
 ### 使用调试版本的包
 
-如果我们想同时源码调试依赖包,那么可以设置为使用debug版本的包(当然前提是这个包支持debug编译):
+如果我们想同时源码调试依赖包,可以设置为使用 debug 版本的包(前提是该包支持 debug 编译):
 
 ```lua
 add_requires("tbox", {debug = true})
 ```
 
-如果当前包还不支持debug编译,可在仓库中提交修改编译规则,对debug进行支持,例如:
+如果当前包还不支持 debug 编译,可在仓库中提交修改编译规则,对 debug 进行支持,例如:
 
 ```lua
 package("openssl")
@@ -141,17 +141,17 @@ package("openssl")
 
 ### 传递额外的编译信息到包
 
-某些包在编译时有各种编译选项,我们也可以传递进来,当然包本身得支持:
+某些包在编译时有各种编译选项,我们也可以传递进来,当然包本身得支持:
 
 ```lua
 add_requires("tbox", {configs = {small = true}})
 ```
 
-传递`--small=true`给tbox包,使得编译安装的tbox包启用此选项
+传递 `--small=true`  tbox 包,使得编译安装的 tbox 包启用此选项。
 
-我们可以通过在工程目录中执行:`xmake require --info tbox` 来获取指定包所有可配置参数列表和取值说明。
+我们可以通过在工程目录中执行:`xmake require --info tbox` 来获取指定包所有可配置参数列表和取值说明。
 
-如:
+如:
 
 ```sh
 xmake require --info spdlog
@@ -181,24 +181,24 @@ xmake require --info spdlog
             -> values: {"MT","MD"}
 ```
 
-其中,configs里面就是spdlog包自身提供的可配置参数,而下面带有builtin的configs部分,是所有包都会有的内置配置参数。
-最上面requires部分,是项目当前配置值。
+其中,configs 里是 spdlog 包自身提供的可配置参数,而下方带有 builtin 的 configs 部分,是所有包都会有的内置配置参数。
+最上面 requires 部分,是项目当前配置值。
 
 ::: tip 注意
-`vs_runtime`是用于msvc下vs runtime的设置,v2.2.9版本中,还支持所有static依赖包的自动继承,也就是说spdlog如果设置了MD,那么它依赖的fmt包也会自动继承设置MD。
+`vs_runtime` 是用 emsvc 下 vs runtime 的设置,v2.2.9 版本中,还支持所有 static 依赖包的自动继承,也就是说 spdlog 如果设置了 MD,那么它依赖的 fmt 包也会自动继承设置 MD。
 :::
 
-可以看到,我们已经能够很方便的定制化获取需要的包,但是每个包自身也许有很多依赖,如果这些依赖也要各种定制化配置,怎么办?
+可以看到,我们已经能够很方便地定制化获取需要的包,但每个包自身也许有很多依赖,如果这些依赖也要各种定制化配置,怎么办?
 
 可以通过 `add_requireconfs` 去重写内部依赖包的配置参数。
 
 ### 安装任意版本的包
 
-默认情况下,`add_requires("zlib >1.2.x")` 只能选择到 `xmake-repo` 仓库中存在的包版本,因为每个版本的包,它们都会有一个sha256的校验值,用于包的完整性校验。
+默认情况下,`add_requires("zlib >1.2.x")` 只能选择到 `xmake-repo` 仓库中存在的包版本,因为每个版本的包都会有一个 sha256 校验值,用于包的完整性校验。
 
-因此,未知版本的包不存在校验值,xmake 默认是不让选择使用的,这并不安全。
+因此,未知版本的包不存在校验值,xmake 默认不允许选择使用,这样更安全。
 
-那如果我们需要的包版本无法选择使用怎么办呢?有两种方式,一种是提交一个 pr 给 [xmake-repo](https://github.com/xmake-io/xmake-repo),增加指定包的新版本以及对应的 sha256,例如:
+那么,如果我们需要的包版本无法选择使用怎么办呢?有两种方式,一种是提交一个 PR 给 [xmake-repo](https://github.com/xmake-io/xmake-repo),增加指定包的新版本以及对应的 sha256,例如:
 
 ```lua
 package("zlib")
@@ -206,7 +206,7 @@ package("zlib")
     add_versions("1.2.11", "c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1")
 ```
 
-另外,还有一种方式,就是用户传递 `{verify = false}` 配置给 `add_requires`,强制忽略包的文件完整性校验,这样就不需要 sha256 值,因此就可以安装任意版本的包。
+另外,还有一种方式,就是用户传递 `{verify = false}` 配置给 `add_requires`,强制忽略包的文件完整性校验,这样就可以安装任意版本的包。
 
 当然,这也会存在一定的安全性以及包不完整的风险,这就需要用户自己去选择评估了。
 

+ 17 - 20
docs/zh/guide/package-management/using-packages-in-cmake.md

@@ -4,7 +4,7 @@
 
 它是一个基于 Xrepo/Xmake 的 C/C++ 包管理器的 CMake 包装器。
 
-这允许使用 CMake 来构建您的项目,同时使用 Xrepo 来管理依赖包。这个项目的部分灵感来自 [cmake-conan](https://github.com/conan-io/cmake-conan)。
+这允许使用 CMake 构建您的项目,同时用 Xrepo 管理依赖包。该项目部分灵感来自 [cmake-conan](https://github.com/conan-io/cmake-conan)。
 
 此项目的示例用例:
 
@@ -30,31 +30,29 @@ xrepo_package(
 )
 ```
 
-一些函数参数直接对应于 Xrepo 命令选项。
+部分函数参数直接对应 Xrepo 命令选项。
 
-`xrepo_package` 将软件包安装目录添加到 `CMAKE_PREFIX_PATH`。所以`find_package`
-可以使用。如果 `CMAKE_MINIMUM_REQUIRED_VERSION` >= 3.1,cmake `pkgConfig` 也会搜索
-对于软件包安装目录下的 pkgconfig 文件。
+`xrepo_package` 会将软件包安装目录添加到 `CMAKE_PREFIX_PATH`,因此 `find_package` 可以直接使用。如果 `CMAKE_MINIMUM_REQUIRED_VERSION` >= 3.1,cmake 的 `pkgConfig` 也会搜索软件包安装目录下的 pkgconfig 文件。
 
-调用 `xrepo_package(foo)` 后,有 `foo` 包的三种使用方式:
+调用 `xrepo_package(foo)` 后,`foo` 包有三种使用方式:
 
 1. 如果包提供 cmake 配置文件,则调用 `find_package(foo)`。
     - 有关详细信息,请参阅 CMake [`find_package`](https://cmake.org/cmake/help/latest/command/find_package.html) 文档。
-2.如果包没有提供cmake配置文件或者找不到模块
+2. 如果包没有提供 cmake 配置文件或者找不到模块
    - 以下变量可用于使用pacakge(cmake后的变量名
      查找模块 [标准变量名称](https://cmake.org/cmake/help/latest/manual/cmake-developer.7.html#standard-variable-names))
      - `foo_INCLUDE_DIRS`
      - `foo_LIBRARY_DIRS`
      - `foo_LIBRARIES`
      - `foo_DEFINITIONS`
-   - 如果指定了 `DIRECTORY_SCOPE`,则 `xrepo_package` 运行以下代码
+   - 如果指定了 `DIRECTORY_SCOPE`,则 `xrepo_package` 运行以下代码
      ```cmake
      include_directories(${foo_INCLUDE_DIRS})
      link_directories(${foo_LIBRARY_DIRS})
      ```
-3. 使用`xrepo_target_packages`。请参阅以下部分
+3. 也可以使用 `xrepo_target_packages`,详见下文
 
-注意 `CONFIGS path/to/script.lua` 用于对包配置进行精细控制。
+注意`CONFIGS path/to/script.lua` 用于对包配置进行精细控制。
 例如:
   - 排除系统上的包。
   - 覆盖依赖包的默认配置,例如设置`shared=true`。
@@ -63,7 +61,7 @@ xrepo_package(
 
 ### xrepo_target_packages
 
-将包 includedirs 和 links/linkdirs 添加到给定的目标。
+将包的 includedirs 和 links/linkdirs 添加到指定目标。
 
 ```cmake
 xrepo_target_packages(
@@ -78,7 +76,7 @@ xrepo_target_packages(
 
 Xrepo 官方仓库:[xmake-repo](https://github.com/xmake-io/xmake-repo)
 
-这是一个使用 `gflags` 包版本 2.2.2 的示例 `CMakeLists.txt` 由 Xrepo 管理。
+下面是一个使用 `gflags` 包版本 2.2.2 的 `CMakeLists.txt` 示例,由 Xrepo 管理。
 
 ### 集成 xrepo.cmake
 
@@ -87,7 +85,7 @@ cmake_minimum_required(VERSION 3.13.0)
 
 project(foo)
 
-# Download xrepo.cmake if not exists in build directory.
+# 如果 build 目录下不存在 xrepo.cmake,则下载。
 if(NOT EXISTS "${CMAKE_BINARY_DIR}/xrepo.cmake")
     message(STATUS "Downloading xrepo.cmake from https://github.com/xmake-io/xrepo-cmake/")
     # mirror https://cdn.jsdelivr.net/gh/xmake-io/xrepo-cmake@main/xrepo.cmake
@@ -96,7 +94,7 @@ if(NOT EXISTS "${CMAKE_BINARY_DIR}/xrepo.cmake")
                   TLS_VERIFY ON)
 endif()
 
-# Include xrepo.cmake so we can use xrepo_package function.
+# 包含 xrepo.cmake 以便可以使用 xrepo_package 函数。
 include(${CMAKE_BINARY_DIR}/xrepo.cmake)
 ```
 
@@ -129,9 +127,8 @@ xrepo_target_packages(example-bin gflags)
 ```cmake
 xrepo_package("gflags 2.2.2" CONFIGS "shared=true,mt=true")
 
-# `xrepo_package` 会将 gflags 安装目录添加到 CMAKE_PREFIX_PATH.
-# `find_package(gflags)` 会从 CMAKE_PREFIX_PATH 包含的目录中找到 gflags 提供的
-# config-file 文件。
+# `xrepo_package` 会将 gflags 安装目录添加到 CMAKE_PREFIX_PATH。
+# `find_package(gflags)` 会从 CMAKE_PREFIX_PATH 包含的目录中找到 gflags 提供的 config-file 文件。
 # 参考 https://cmake.org/cmake/help/latest/command/find_package.html#search-modes
 find_package(gflags CONFIG COMPONENTS shared)
 
@@ -162,16 +159,16 @@ package("myzlib")
     -- ...
 ```
 
-我们可以自定义一个包,具体定义方式,参考文档:[自定义 Xrepo 包](/zh/guide/package-management/package-distribution#define-package-configuration).
+我们可以自定义一个包,具体定义方式文档:[自定义 Xrepo 包](/zh/guide/package-management/package-distribution#define-package-configuration)
 
 
 ## 使用来自第三个存储库的包
 
-除了从官方维护的存储库安装软件包外,Xrepo 还可以安装来自第三方包管理器的包,例如 vcpkg/conan/conda/pacman/homebrew/apt/dub/cargo。
+除了从官方维护的存储库安装软件包外,Xrepo 还可以安装来自第三方包管理器的包,例如 vcpkg、conan、conda、pacman、homebrew、apt、dub、cargo。
 
 关于命令行的使用,我们可以参考文档:[Xrepo命令用法](/zh/guide/package-management/xrepo-cli).
 
-我们也可以直接在 cmake 中使用它来安装来自第三方仓库的包,只需将仓库名称添加为命名空间即可。例如:`vcpkg::zlib`, `conan::pcre2`
+我们也可以直接在 cmake 中使用它来安装来自第三方仓库的包,只需将仓库名称添加为命名空间即可。例如:`vcpkg::zlib``conan::pcre2`
 
 ### Conan
 

+ 12 - 12
docs/zh/guide/package-management/using-source-code-packages.md

@@ -2,7 +2,7 @@
 
 ## 集成 CMake 代码库
 
-2.5.8 版本之后,我们也能够通过 xmake 的包模式直接集成自己项目中带有 CMakeLists.txt 的代码库,而不是通过远程下载安装。
+2.5.8 版本之后,我们也可以通过 xmake 的包模式直接集成自己项目中带有 CMakeLists.txt 的代码库,而不是通过远程下载安装。
 
 相关 issues: [#1714](https://github.com/xmake-io/xmake/issues/1714)
 
@@ -20,7 +20,7 @@
 └── xmake.lua
 ```
 
-foo 目录下是一个使用 cmake 维护的静态库,而根目录下使用了 xmake 来维护,我们可以在 xmake.lua 中通过定义 `package("foo")` 包来描述如何构建 foo 代码库。
+foo 目录下是一个使用 cmake 维护的静态库,而根目录下使用了 xmake 进行维护。我们可以在 xmake.lua 中通过定义 `package("foo")` 包来描述如何构建 foo 代码库。
 
 ```lua
 add_rules("mode.debug", "mode.release")
@@ -47,7 +47,7 @@ target("demo")
     add_packages("foo")
 ```
 
-其中,我们通过 `set_sourcedir()` 来设置 foo 包的代码目录位置,然后通过 import 导入 `package.tools.cmake` 辅助模块来调用 cmake 构建代码,xmake 会自动获取生成的 libfoo.a 对应的头文件。
+其中,我们通过 `set_sourcedir()` 来设置 foo 包的代码目录位置,然后通过 import 导入 `package.tools.cmake` 辅助模块来调用 cmake 构建代码,xmake 会自动获取生成的 libfoo.a 对应的头文件。
 
 ::: tip 注意
 如果仅仅本地源码集成,我们不需要额外设置 `add_urls` 和 `add_versions`。
@@ -55,15 +55,15 @@ target("demo")
 
 关于包的配置描述,详情见:[包描述说明](/zh/guide/package-management/package-distribution.html#define-package-configuration)。
 
-定义完包后,我们就可以通过 `add_requires("foo")` 和 `add_packages("foo")` 来集成使用它了,就跟集成远程包一样的使用方式
+定义完包后,我们就可以通过 `add_requires("foo")` 和 `add_packages("foo")` 来集成使用它了,和集成远程包的方式完全一致
 
-另外,`on_test` 是可选的如果想要严格检测包的编译安装是否成功,可以在里面做一些测试。
+另外,`on_test` 是可选的如果想要严格检测包的编译安装是否成功,可以在里面做一些测试。
 
 完整例子见:[Library with CMakeLists](https://github.com/xmake-io/xmake/tree/master/tests/projects/c/library_with_cmakelists)
 
 ## 集成 Meson 代码库
 
-xmake 支持集成更多其他构建系统维护的第三方源码库,比如 meson,仅仅只导入使用 `package.tools.meson` 辅助构建模块调用 meson 来构建它们。
+xmake 支持集成更多其他构建系统维护的第三方源码库,比如 meson,仅需导入使用 `package.tools.meson` 辅助构建模块调用 meson 来构建它们。
 
 例如,我们从 xmake-repo 仓库中挑选一个使用 meson 构建的包作为例子:
 
@@ -97,7 +97,7 @@ package("harfbuzz")
 
 ## 集成 autoconf 代码库
 
-我们也可以使用 `package.tools.autoconf` 来本地集成带有 autoconf 维护的第三方代码库。
+xmake 也可以使用 `package.tools.autoconf` 来本地集成带有 autoconf 维护的第三方代码库。
 
 ```lua
 package("pcre2")
@@ -142,11 +142,11 @@ package("pcre2")
     end)
 ```
 
-`package.tools.autoconf` 和 `package.tools.cmake` 模块都可以支持 mingw/cross/iphoneos/android 等交叉编译平台和工具链,xmake 会自动传递对应的工具链进去,用户不需要做任何其他事情
+`package.tools.autoconf` 和 `package.tools.cmake` 模块都可以支持 mingw/cross/iphoneos/android 等交叉编译平台和工具链,xmake 会自动传递对应的工具链进去,用户无需做任何其他操作
 
 ## 集成 Scons 代码库
 
-我们也可以使用 `package.tools.scons` 来本地集成带有 Scons 维护的第三方代码库。
+xmake 也可以使用 `package.tools.scons` 来本地集成带有 Scons 维护的第三方代码库。
 
 ```lua
 package("godotcpp")
@@ -196,9 +196,9 @@ package("godotcpp")
 
 ### 使用 Nmake
 
-我们也可以使用 `package.tools.nmake` 来本地集成带有 nmake 维护的第三方代码库。
+xmake 也可以使用 `package.tools.nmake` 来本地集成带有 nmake 维护的第三方代码库。
 
-`nmake.install` 会自动绑定当前用户的 msvc 构建环境,确保用户能够顺利调用到 nmake.exe 以及 msbuild 和 cl.exe 等程序。
+nmake.install 会自动绑定当前用户的 msvc 构建环境,确保用户能够顺利调用到 nmake.exe 以及 msbuild 和 cl.exe 等程序。
 
 ```lua
 package("libxml2")
@@ -236,7 +236,7 @@ package("libxml2")
 
 ### 使用 GnuMake
 
-我们也可以使用 `package.tools.make` 来本地集成带有 gnumake 维护的第三方代码库。
+xmake 也可以使用 `package.tools.make` 来本地集成带有 gnumake 维护的第三方代码库。
 
 ```lua
 package("openssl")

+ 5 - 5
docs/zh/guide/package-management/using-system-packages.md

@@ -2,9 +2,9 @@
 
 ## 查找使用系统包
 
-Xmake 对远程包和系统包的使用进行了统一,全部使用 `add_requires("zlib")` 接口来描述集成,而默认的配置方式,它会优先从系统上查找库,如果没有,会自动下载安装集成。
+Xmake 对远程包和系统包的使用进行了统一,全部使用 `add_requires("zlib")` 接口来描述集成。默认配置下,它会优先从系统上查找库,如果没有,会自动下载安装集成。
 
-而如果我们仅仅想查找使用系统库,不想远程下载,可以这么配置:
+如果我们只想查找并使用系统库,不想远程下载,可以这样配置:
 
 ```lua
 add_requires("zlib", {system = true})
@@ -15,9 +15,9 @@ target("test")
     add_packages("zlib")
 ```
 
-通过 `{system = true}` 就可以强制禁用远程下载,这时候,他就等价于 Xmake/CMake 的 `find_package`,但是更加简单易用,并且和远程包使用方式完全一致。
+通过 `{system = true}` 就可以强制禁用远程下载,此时它就等价于 Xmake/CMake 的 `find_package`,但更简单易用,并且与远程包的使用方式完全一致。
 
-默认情况下,如果找不到系统库,就是提示失败,如果这个包是可选的,那么可以额外配置 `{optional = true}` 选项。
+默认情况下,如果找不到系统库,则会提示失败。如果这个包是可选的,可以额外配置 `{optional = true}` 选项。
 
 ```lua
 add_requires("zlib", {system = true, optional = true})
@@ -50,5 +50,5 @@ xmake l find_package conan::OpenSSL/1.0.2g
 ```
 
 ::: tip 注意
-find_package 命令如果在带有xmake.lua的工程目录下执行,是会有缓存的,如果查找失败,下次查找也会使用缓存的结果,如果要每次强制重新检测,请切换到非工程目录下执行上面的命令。
+find_package 命令如果在带有 xmake.lua 的工程目录下执行,是会有缓存的。如果查找失败,下次查找也会使用缓存的结果。如果要每次强制重新检测,请切换到非工程目录下执行上述命令。
 :::