通用命令选项
大多数 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.cmake 或 portfile.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>
本节介绍的是实验性功能,可能随时发生变更或被移除。
指定部署已安装包的路径。
--x-manifest-root=<path>
本节介绍的是实验性功能,可能随时发生变更或被移除。
指定包含 kmpkg.json 的目录。
默认行为是从当前工作目录向上搜索最近的 kmpkg.json 文件。
--overlay-ports=<path>
指定包含 覆盖端口 的目录,或本身为覆盖端口的子目录。若 <path> 是包含 CONTROL 或 kmpkg.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> 所在的位置执行。响应文件中不能包含其他响应文件引用。