CPack NuGet 生成器

在 3.12 版本加入.

构建 NuGet 包时,由于缺少 NuGet 的相应 CLI 选项,因此无法直接控制输出文件名,因此没有 CPACK_NUGET_PACKAGE_FILE_NAME 变量。为了形成输出文件名,NuGet 根据其内置规则使用包名称和版本。

另外,请注意包含顶级目录 (CPACK_INCLUDE_TOPLEVEL_DIRECTORY) 会被此生成器忽略。

特定于 CPack NuGet 生成器的变量

CPack NuGet 生成器可用于使用 CPack 创建 NuGet 包。 CPack NuGet 生成器是一个 CPack 生成器,因此它使用 CPack 使用的 CPACK_XXX 变量。

CPack NuGet 生成器具有由特定变量控制的特定功能。在“每组一个”模式下(参见 CPACK_COMPONENTS_GROUPING),下面变量中的``<compName>``占位符将包含一个组名(大写并变成“C”标识符)。

CPack NuGet 生成器特定变量列表:

CPACK_NUGET_COMPONENT_INSTALL

为 CPack NuGet 生成器启用组件打包

强制的:

默认:

关闭

CPACK_NUGET_PACKAGE_NAME
CPACK_NUGET_<compName>_PACKAGE_NAME

NUGET 包名称。 CPACK_NUGET_PACKAGE_NAMEnuget.org 上用作包 id

强制的:

是的

默认:

CPACK_PACKAGE_NAME

CPACK_NUGET_PACKAGE_VERSION
CPACK_NUGET_<compName>_PACKAGE_VERSION

NuGet 包版本。

强制的:

是的

默认:

CPACK_PACKAGE_VERSION

CPACK_NUGET_PACKAGE_DESCRIPTION
CPACK_NUGET_<compName>_PACKAGE_DESCRIPTION

用于 UI 显示的包的详细描述。

强制的:

是的

默认:
CPACK_NUGET_PACKAGE_AUTHORS
CPACK_NUGET_<compName>_PACKAGE_AUTHORS

以逗号分隔的包作者列表,与 nuget.org 上的配置文件名称相匹配。它们显示在 nuget.org 上的 NuGet 库中,用于交叉引用相同作者的包。

强制的:

是的

默认:

CPACK_PACKAGE_VENDOR

CPACK_NUGET_PACKAGE_TITLE
CPACK_NUGET_<compName>_PACKAGE_TITLE

包的人性化标题,通常用于 UI 显示,如 nuget.org 和 Visual Studio 中的包管理器。如果未指定,则使用包 ID。

强制的:

默认:
CPACK_NUGET_PACKAGE_OWNERS
CPACK_NUGET_<compName>_PACKAGE_OWNERS

使用 nuget.org 上的配置文件名称的包创建者的逗号分隔列表。这通常与作者中的列表相同,在将包上传到 nuget.org 时会被忽略。

强制的:

默认:

没有任何

CPACK_NUGET_PACKAGE_HOMEPAGE_URL
CPACK_NUGET_<compName>_PACKAGE_HOMEPAGE_URL

包主页的 URL,通常显示在 UI 显示以及 nuget.org 中。

强制的:

默认:

CPACK_PACKAGE_HOMEPAGE_URL

CPACK_NUGET_PACKAGE_LICENSEURL
CPACK_NUGET_<compName>_PACKAGE_LICENSEURL

自 3.20 版本弃用: 请改用本地许可证文件 (CPACK_NUGET_PACKAGE_LICENSE_FILE_NAME) 或 SPDX 许可证标识符 (CPACK_NUGET_PACKAGE_LICENSE_EXPRESSION)。

包许可证的 URL,通常显示在 UI 显示以及 nuget.org 上。

强制的:

默认:

没有任何

CPACK_NUGET_PACKAGE_LICENSE_EXPRESSION
CPACK_NUGET_<compName>_PACKAGE_LICENSE_EXPRESSION

在 3.20 版本加入.

软件包数据交换`SPDX 许可标识符`_ 例如``MIT``、BSD-3-Clause 或``LGPL-3.0-or-later``。在选择许可证或更复杂的限制的情况下,可以使用布尔运算符形成复合许可证表达式,例如“MIT OR BSD-3-Clause”。请参阅“SPDX 规范”以获取有关形成复杂许可表达式的指南。

如果指定了 CPACK_NUGET_PACKAGE_LICENSE_FILE_NAME,则会忽略 CPACK_NUGET_PACKAGE_LICENSE_EXPRESSION

强制的:

默认:

没有任何

CPACK_NUGET_PACKAGE_LICENSE_FILE_NAME
CPACK_NUGET_<compName>_PACKAGE_LICENSE_FILE_NAME

包的许可证文件,格式为 .txt.md

如果指定 CPACK_NUGET_PACKAGE_LICENSE_FILE_NAME,将忽略 :variable:`!CPACK_NUGET_PACKAGE_LICENSE_EXPRESSION。

在 3.20 版本加入.

强制的:

默认:

没有任何

CPACK_NUGET_PACKAGE_ICONURL
CPACK_NUGET_<compName>_PACKAGE_ICONURL

自 3.20 版本弃用: 请改用本地图标文件 (CPACK_NUGET_PACKAGE_ICON)。

具有透明背景的 64x64 图像的 URL,用作 UI 显示中包的图标。

强制的:

默认:

没有任何

CPACK_NUGET_PACKAGE_REQUIRE_LICENSE_ACCEPTANCE

当设置为 true 值时,将提示用户在安装包之前接受许可证。

强制的:

默认:

没有任何

CPACK_NUGET_PACKAGE_ICON
CPACK_NUGET_<compName>_PACKAGE_ICON

在 3.20 版本加入.

具有透明背景的 64x64 图像的文件名,用作 UI 显示中包的图标。

强制的:

默认:

没有任何

CPACK_NUGET_PACKAGE_DESCRIPTION_SUMMARY
CPACK_NUGET_<compName>_PACKAGE_DESCRIPTION_SUMMARY

用于 UI 显示的包的简短描述。如果省略,则使用描述的截断版本。

强制的:

默认:

CPACK_PACKAGE_DESCRIPTION_SUMMARY

CPACK_NUGET_PACKAGE_RELEASE_NOTES
CPACK_NUGET_<compName>_PACKAGE_RELEASE_NOTES

此版本包中所做更改的描述,通常在 UI 中使用,例如 Visual Studio 包管理器的“更新”选项卡,代替包描述。

强制的:

默认:

没有任何

包的版权详细信息。

强制的:

默认:

没有任何

CPACK_NUGET_PACKAGE_LANGUAGE
CPACK_NUGET_<compName>_PACKAGE_LANGUAGE

在 3.20 版本加入.

包的区域设置说明符,例如 en_CA

强制的:

默认:

没有任何

CPACK_NUGET_PACKAGE_TAGS
CPACK_NUGET_<compName>_PACKAGE_TAGS

以空格分隔的标签和关键字列表,用于描述包并帮助通过搜索和过滤发现包。

强制的:

默认:

没有任何

CPACK_NUGET_PACKAGE_DEPENDENCIES
CPACK_NUGET_<compName>_PACKAGE_DEPENDENCIES

包依赖项列表。

强制的:

默认:

没有任何

CPACK_NUGET_PACKAGE_DEPENDENCIES_<dependency>_VERSION
CPACK_NUGET_<compName>_PACKAGE_DEPENDENCIES_<dependency>_VERSION

特定依赖项的版本规范,其中 <dependency> 是依赖项列表(见上文)中的一项,使用 string(MAKE_C_IDENTIFIER) 命令进行转换。

强制的:

默认:

没有任何

CPACK_NUGET_PACKAGE_DEBUG

在执行 CPack NuGet 生成器时启用调试消息。

强制的:

默认:

关闭