我正在使用 CPack 创建 C++ CMake 项目的 NuGet 包。
cmake -S . -B build
cmake --build build --config Release
cd build
cpack -G NuGet -C 'Release'
我定义了几个cpack变量,例如:
CPACK_PACKAGE_NAME
CPACK_PACKAGE_VENDOR
CPACK_PACKAGE_DESCRIPTION
install()
命令一样。如何添加此信息?还是我错过了什么?
我正在寻找的元信息可以在 .targets 文件中找到。请参阅此处了解更多信息。
所以我手动创建了这样一个文件,并使用 cmake
install()
指令添加它,这样 cpack 就会将其包含在 NuGet 包中。重要提示:必须在<nuget root>/build/**/<nuget name>.targets
找到它。它看起来像这样:
<Project>
<ItemDefinitionGroup>
<Link>
<AdditionalDependencies>
$(MSBuildThisFileDirectory)../lib/foo.lib;
[...]
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>
$(MSBuildThisFileDirectory)../include;
[...]
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)../bin/foo.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
[...]
我主要是从其他 nuget 文件反向工程语法。我对这个解决方案不是 100% 满意。但它有效。
如果您知道任何信息,请免费告诉我更多信息:-)