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_NAME在 nuget.org 上用作包id- 强制的:
是的
- 默认:
- CPACK_NUGET_PACKAGE_DESCRIPTION¶
- CPACK_NUGET_<compName>_PACKAGE_DESCRIPTION¶
用于 UI 显示的包的详细描述。
- 强制的:
是的
- 默认:
CPACK_COMPONENT_GROUP_<groupName>_DESCRIPTION,
- CPACK_NUGET_PACKAGE_AUTHORS¶
- CPACK_NUGET_<compName>_PACKAGE_AUTHORS¶
以逗号分隔的包作者列表,与 nuget.org 上的配置文件名称相匹配。它们显示在 nuget.org 上的 NuGet 库中,用于交叉引用相同作者的包。
- 强制的:
是的
- 默认:
- CPACK_NUGET_PACKAGE_TITLE¶
- CPACK_NUGET_<compName>_PACKAGE_TITLE¶
包的人性化标题,通常用于 UI 显示,如 nuget.org 和 Visual Studio 中的包管理器。如果未指定,则使用包 ID。
- 强制的:
不
- 默认:
CPACK_COMPONENT_GROUP_<groupName>_DISPLAY_NAME
- 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_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_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 生成器时启用调试消息。
- 强制的:
不
- 默认:
关闭