kmpkg export
命令概要
kmpkg export [options] {<package>... | --x-all-installed}
命令描述
将已安装目录中已构建的包导出为独立的开发者 SDK(软件开发工具包)。
export 命令生成的 SDK 独立且可分发,无需单独安装 kmpkg 即可在另一台机器上使用。该 SDK 包含以下内容:
- 所选包的预编译二进制文件
- 这些包的所有传递依赖项
- 集成文件,例如 CMake 工具链文件 或 MSBuild 属性/目标文件
export 命令不会安装任何包或其传递依赖项,仅导出已安装的包。
经典模式
经典模式下,kmpkg export 支持接收带三元组限定的包规格参数(例如:zlib:x64-windows)。
需在命令行中通过 <端口名>:<三元组> 格式的参数指定要导出的包。
示例:导出 x64-windows 和 x64-linux 架构的 sqlite 包
kmpkg export sqlite:x64-windows sqlite:x64-linux --zip
该命令会将指定包导出为 zip 格式。执行 kmpkg export 前,sqlite:x64-windows 和 sqlite:x64-linux 必须已完成安装。
清单模式
清单模式下,该命令会导出所有当前已安装的包。已安装目录包含清单文件(kmpkg.json)中声明的所有包及其传递依赖项。使用该命令前需先运行 kmpkg install,确保所有必要包已安装。
此模式下无法指定单个包进行导出,命令会将整个已安装状态视为一个整体处理,且遵循清单文件中指定的依赖关系和版本。
另一差异点是必须指定 --output-dir 选项,该选项用于指定导出包的存储目录。
示例:在清单文件所在目录执行
kmpkg export --zip --output-dir=.\exports
将所有已安装包导出到 .\exports 目录,并压缩为 zip 文件。--zip 选项指定导出包以 zip 压缩格式存储。
标准集成内容
大多数导出格式都会包含一套标准的集成文件:
- CMake 工具链文件:
/scripts/buildsystems/kmpkg.cmake - MSBuild 属性/目标文件:
/scripts/buildsystems/msbuild/kmpkg.props和/scripts/buildsystems/msbuild/kmpkg.targets - 安装目录结构:
/(根目录)
部分导出格式的文件集合与标准内容存在差异,详情请参考下文各格式的说明。
导出格式
官方支持的 SDK 导出格式:
原始目录
kmpkg export --raw [options] <package>...
在 <output-dir>/<output>/ 路径下创建未压缩的目录结构。
包含标准集成文件。
Zip 压缩包
kmpkg export --zip [options] <package>...
在 <output-dir>/<output>.zip 路径下创建 Zip 压缩格式的目录结构。
包含标准集成文件。
7zip 压缩包
kmpkg export --7zip [options] <package>...
在 <output-dir>/<output>.7z 路径下创建 7zip 压缩格式的目录结构。
包含标准集成文件。
IFW 格式
IFW 导出格式已移除。
Chocolatey 格式
Chocolatey 导出格式已移除。
Prefab 格式
Prefab 导出格式已移除。
命令选项
所有 kmpkg 命令均支持一组通用选项。
<package>
指定要包含在 SDK 中的顶层已构建包列表。这些包的所有依赖项也会被自动包含,以确保生成的 SDK 是自包含的。
包规格语法
<端口名>:<三元组>
未指定三元组的包引用会自动使用默认目标三元组进行限定。
注意:清单模式下使用 kmpkg export 时,不允许传入 <端口名>:<三元组> 格式的参数。
--x-all-installed
本节介绍的是实验性功能,可能随时发生变更或被移除。
导出所有已安装的包。清单模式下使用 kmpkg export 时,该选项会被自动启用。
--dereference-symlinks
将符号链接作为普通文件和目录复制到导出结果中(即解析符号链接,复制实际指向的文件/目录)。
--dry-run
仅打印导出计划,不执行实际的导出操作。
--nuget-description=
指定 NuGet 格式 .nupkg 文件的输出描述信息。
默认值为 "Kmpkg NuGet export"。
--nuget-id=
指定 NuGet 格式 .nupkg 文件的输出标识(ID)。
该选项会覆盖 --output 选项对 NuGet 导出器的作用。默认值请参考 --output 选项说明。
--nuget-version=
指定 NuGet 格式 .nupkg 文件的输出版本号。
默认值为 1.0.0。
--output=
指定输出文件的基础名称。
每种 SDK 格式都会基于该基础名称生成具体的输出文件名,详情请参考上文各格式的说明。
默认值为 kmpkg-export-<日期>-<时间>。脚本化使用 export 命令时,建议始终指定该参数以确保输出结果可预测。
--output-dir=
指定输出目录。
所有顶层 SDK 文件都会生成到该目录下。清单模式下必须指定该选项;经典模式下为可选,默认值为 kmpkg 根目录。