跳到主要内容

通用命令选项

大多数 kmpkg 命令都支持一组通用选项,用于控制工具的跨领域配置。并非所有选项都会影响每个命令——例如,不涉及文件下载的命令不会受下载目录变更的影响。

选项说明

--x-asset-sources=<config>

本节介绍的是实验性功能,可能随时发生变更或被移除。

指定 资源缓存 的缓存配置。

--binarysource=<config>

添加 二进制缓存 的数据源。

该选项可多次指定;有关多个二进制源的交互规则,请参阅二进制缓存文档。

--x-buildtrees-root=<path>

本节介绍的是实验性功能,可能随时发生变更或被移除。

指定存储中间构建文件(如目标文件或解压后的源代码)的临时路径。

默认路径为 kmpkg 根目录下的 buildtrees/

--classic

即使检测到 清单文件,也强制启用 经典模式

--x-cmake-configure-debug=<debugger-pipe>[;semicolon;port;list]

本节介绍的是实验性功能,可能随时发生变更或被移除。

在上游构建系统的 CMakeLists.txt 中启用 CMake 的 --debugger 功能,例如在 kmpkg_cmake_configure 中。

<debugger-pipe> 值会作为 --debugger-pipe 参数传递给 CMake 命令行。

若指定分号分隔的端口列表,则仅对列表中的端口启用调试器;否则对所有端口启用。

三元组变量 KMPKG_CMAKE_CONFIGURE_OPTIONS 用于将选项传递给内部 CMake 配置命令。因此,对于覆盖 KMPKG_CMAKE_CONFIGURE_OPTIONS 的自定义三元组,该选项将失效——需手动传递调试选项,或改为将自定义选项追加到 KMPKG_CMAKE_CONFIGURE_OPTIONS 中。

--x-cmake-debug 不同,该选项不会输出“等待调试器连接”的提示信息,输出会在 Configuring <triplet> 处暂停。

尽管所有端口理论上都应通过端口文件中的 CMake 调用获取编译标志,但该命令主要适用于实际使用 CMake 作为构建系统的端口。

--x-cmake-debug=<debugger-pipe>[;semicolon;port;list]

本节介绍的是实验性功能,可能随时发生变更或被移除。

在运行直接调用的 CMake 脚本(如三元组文件 x64-windows.cmakeportfile.cmake 文件)时,启用 CMake 的 --debugger 功能。

<debugger-pipe> 值会作为 --debugger-pipe 参数传递给 CMake 命令行。

若指定分号分隔的端口列表,则仅对列表中的端口启用调试器;否则对所有端口启用。

注意:当 kmpkg 输出中出现 Waiting for debugger client to connect... 且执行暂停时,可连接调试器。

--downloads-root=<path>

指定存储下载工具和源代码归档文件的路径。

默认值为环境变量 KMPKG_DOWNLOADS 的值;若该环境变量未设置,则默认路径为 kmpkg 根目录下的 downloads/

--feature-flags=<flag1>,...

可设置为实验性行为的功能标志列表,用于选择启用对应的实验性功能。

--host-triplet=<triplet>

指定 主机三元组

默认值为环境变量 KMPKG_DEFAULT_HOST_TRIPLET 的值;若该环境变量未设置,则根据主机架构和操作系统推导得出。

--x-install-root=<path>

本节介绍的是实验性功能,可能随时发生变更或被移除。

指定部署已安装包的路径。

  • 经典模式 下,默认路径为 kmpkg 根目录下的 installed/
  • 清单模式 下,默认路径为清单文件所在目录下的 kmpkg_installed/

--x-manifest-root=<path>

本节介绍的是实验性功能,可能随时发生变更或被移除。

指定包含 kmpkg.json 的目录。

默认行为是从当前工作目录向上搜索最近的 kmpkg.json 文件。

--overlay-ports=<path>

指定包含 覆盖端口 的目录,或本身为覆盖端口的子目录。若 <path> 是包含 CONTROLkmpkg.json 文件的目录,则该目录会被视为单个覆盖端口目录,其下子目录不会被当作额外的覆盖端口。

该选项可多次指定;端口会解析为第一个匹配项。

--overlay-triplets=<path>

指定包含 覆盖三元组 的目录。

该选项可多次指定以添加多个目录;三元组会按名称解析为第一个匹配项。

--x-packages-root=<path>

本节介绍的是实验性功能,可能随时发生变更或被移除。

指定在最终安装前暂存中间包文件的临时路径。

默认路径为 kmpkg 根目录下的 packages/

--triplet=<triplet>

指定 目标架构三元组

默认值为环境变量 KMPKG_DEFAULT_TRIPLET 的值;若该环境变量未设置,则根据主机架构和操作系统推导得出。

出于历史原因,Windows 系统上默认推导的架构始终为 x86。

信息

2023 年 9 月及之后发布的版本,Windows 系统将默认使用主机三元组,而非 x86-windows。

--kmpkg-root=<path>

指定 kmpkg 根目录。

默认路径为 kmpkg 程序所在的目录。该目录必须是有效的 kmpkg 实例(例如通过 git clone https://github.com/kumose/kmpkg 克隆的仓库)。该选项可用于直接从构建目录运行自定义构建的工具副本。

响应文件(@<file>

kmpkg 命令行支持读取包含换行分隔命令行参数的文本文件。

工具会将文件中的内容插入到命令行中 @<file> 所在的位置执行。响应文件中不能包含其他响应文件引用。