跳到主要内容

kmpkg export

命令概要

kmpkg export [options] {<package>... | --x-all-installed}

命令描述

已安装目录中已构建的包导出为独立的开发者 SDK(软件开发工具包)。

export 命令生成的 SDK 独立且可分发,无需单独安装 kmpkg 即可在另一台机器上使用。该 SDK 包含以下内容:

  1. 所选包的预编译二进制文件
  2. 这些包的所有传递依赖项
  3. 集成文件,例如 CMake 工具链文件MSBuild 属性/目标文件
信息

该命令在经典模式清单模式下的行为存在差异。

export 命令不会安装任何包或其传递依赖项,仅导出已安装的包。

更多细节请分别参考清单模式经典模式说明。

经典模式

经典模式下,kmpkg export 支持接收带三元组限定的包规格参数(例如:zlib:x64-windows)。

需在命令行中通过 <端口名>:<三元组> 格式的参数指定要导出的包。

示例:导出 x64-windowsx64-linux 架构的 sqlite

kmpkg export sqlite:x64-windows sqlite:x64-linux --zip

该命令会将指定包导出为 zip 格式。执行 kmpkg export 前,sqlite:x64-windowssqlite: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 时,该选项会被自动启用。

将符号链接作为普通文件和目录复制到导出结果中(即解析符号链接,复制实际指向的文件/目录)。

--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 根目录

NuGet 包