mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-06 13:51:33 -06:00
Create a CPack generator that uses `nuget.exe` to create packages:
https://docs.microsoft.com/en-us/nuget/what-is-nuget
NuGet packages could be easily produced from a `*.nuspec` file (running
`nuget pack` in the directory w/ the spec file). The spec filename does
not affect the result `*.nupkg` name -- only `id` and `version` elements
of the spec are used (by NuGet).
Some implementation details:
* Minimize C++ code -- use CMake script do to the job. It just let the
base class (`cmCPackGenerator`) to preinstall everything to a temp
directory, render the spec file and run `nuget pack` in it, harvesting
`*.nupkg` files...;
* Ignore package name (and use default paths) prepared by the base class
(only `CPACK_TEMPORARY_DIRECTORY` is important) -- final package
filename is a responsibility of NuGet, so after generation just scan the
temp directory for the result `*.nupkg` file(s) and update
`packageFileNames` data-member of the generator;
* The generator supports _all-in-one_ (default), _one-group-per-package_
and _one-component-per-package_ modes.
25 lines
897 B
XML
25 lines
897 B
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
|
|
<metadata>
|
|
<!-- Required elements-->
|
|
<id>@CPACK_NUGET_PACKAGE_NAME@</id>
|
|
<version>@CPACK_NUGET_PACKAGE_VERSION@</version>
|
|
<description>@CPACK_NUGET_PACKAGE_DESCRIPTION@</description>
|
|
<authors>@CPACK_NUGET_PACKAGE_AUTHORS@</authors>
|
|
|
|
<!-- Optional elements -->
|
|
@_CPACK_NUGET_TITLE_TAG@
|
|
@_CPACK_NUGET_OWNERS_TAG@
|
|
@_CPACK_NUGET_PROJECTURL_TAG@
|
|
@_CPACK_NUGET_LICENSEURL_TAG@
|
|
@_CPACK_NUGET_ICONURL_TAG@
|
|
@_CPACK_NUGET_REQUIRELICENSEACCEPTANCE_TAG@
|
|
@_CPACK_NUGET_SUMMARY_TAG@
|
|
@_CPACK_NUGET_RELEASENOTES_TAG@
|
|
@_CPACK_NUGET_COPYRIGHT_TAG@
|
|
@_CPACK_NUGET_TAGS_TAG@
|
|
@_CPACK_NUGET_DEPENDENCIES_TAG@
|
|
</metadata>
|
|
@_CPACK_NUGET_FILES_TAG@
|
|
</package>
|