配置
本页介绍 west 的配置文件系统、west config 命令,以及内置命令使用的配置选项。west.configuration 模块的 API 文档见 west.configuration。
West 配置文件
West 的配置文件使用类似 INI 的语法,示例如下:
[manifest]
path = zephyr
[zephyr]
base = zephyr
上例中,manifest 节的 path 选项设置为 zephyr。也可以说,此文件中的 manifest.path 为 zephyr。
配置文件分为三种:
系统:此文件中的设置影响计算机上所有登录用户运行 west 时的行为。位置取决于平台:
Linux:
/etc/westconfigmacOS:
/usr/local/etc/westconfigWindows:
%PROGRAMDATA%\west\config
全局 (每用户):此文件中的设置影响计算机上特定用户运行 west 时的行为。
所有平台:默认使用用户主目录下的
.westconfig。Linux 注意事项:如果设置了环境变量
XDG_CONFIG_HOME,则使用$XDG_CONFIG_HOME/west/config。Windows 注意事项:按以下顺序检查环境变量以确定主目录:
%HOME%、%USERPROFILE%,最后是%HOMEDRIVE%与%HOMEPATH%的组合。
本地:此文件中的设置影响当前 west workspace 中 west 的行为。文件为相对于工作区根目录的
.west/config。
列表中靠后文件中的设置会覆盖前面文件中的设置。例如,系统配置文件中的 color.ui 为 true,而工作区配置文件中为 false,最终值就是 false。同理,用户配置文件中的设置会覆盖系统设置,依此类推。
west config
内置 config 命令用于获取和设置配置值。可以向 west config 传入 --system、--global 或 --local,指定要使用的配置文件。这些选项一次只能使用一个。如果均未指定,写入默认使用 --local,读取则显示应用覆盖规则后的最终值。
下面给出常见用法示例;详细帮助可运行 west config -h,内置选项的更多说明见 内置配置选项。
将 manifest.path 设置为 some-other-manifest:
west config manifest.path some-other-manifest
这样设置后,west update 等命令会在相对于工作区根目录的 some-other-manifest 目录中查找 west manifest,而不是在传给 west init 的目录中查找,因此请谨慎操作!
读取 zephyr.base:如果调用环境未设置 ZEPHYR_BASE,就会使用此值(同样相对于工作区根目录):
west config zephyr.base
可以使用以下命令切换到另一个 zephyr 仓库,而不改变 manifest.path,因此也不会改变 west update 等命令的行为:
west config zephyr.base some-other-zephyr
如果使用 git worktree 等命令创建自己的 zephyr 目录,并希望 west build 等命令使用它们,而不是清单指定的 zephyr 仓库,这会很有用。(运行 west config zephyr.base zephyr 可以恢复使用上游清单中的目录。)
将全局(用户级)配置文件中的 color.ui 设为 false,使该用户在任何工作区运行 west 时都不再输出彩色文本:
west config --global color.ui false
撤销上述修改:
west config --global color.ui true
内置配置选项
下表说明 west 内置命令支持的配置选项。Zephyr 扩展命令支持的选项记录在各命令对应的页面中。
选项 |
描述 |
|---|---|
|
字符串。如果非空, |
|
布尔值。如果为 |
|
布尔值,默认为 |
|
字符串,默认为空。设为 |
|
字符串,可取 |
|
字符串,默认为空。 |
|
字符串,默认为空。 |
|
字符串,默认为 |
|
字符串,默认为空。以逗号分隔,列出要在工作区中启用和禁用的项目组。启用的组以 |
|
字符串,指定从 west workspace 根目录到清单仓库的相对路径,供 |
|
以逗号分隔的字符串列表。 该选项的值是以逗号分隔的正则表达式列表,每个表达式均以 +re1,-re2,-re3
项目名称按顺序与列表中的各正则表达式( 如果项目名称匹配列表中的多个正则表达式,使用最后一个匹配表达式的结果。例如,若 -hal_.*,+hal_foo
则名为 如果列表项将某项目停用或激活,那么无论其部分或全部组是否被禁用,项目都会保持该项指定的活动状态。(目前,这是使不属于任何组的项目变为非活动状态的唯一方式。) 否则,即项目未匹配列表中的任何正则表达式时,其活动状态按项目组相关的通常规则确定(此类示例见 项目组示例)。
+foo,-bar
+foo , -bar
空列表项会被忽略。因此以下示例值等效: +foo,,-bar
+foo,-bar
|
|
字符串。如果非空,且命令行未指定 |
|
字符串,可取 |
|
字符串。如果非空,且命令行未指定 |
|
布尔值。如果为 |
|
字符串。如果非空,且命令行未指定 |
|
布尔值。如果为 |
|
字符串,指定 west 命令运行期间为 |
|
字符串,可取 |