CPack: Add NuGet support
In fact, 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 runnuget 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 updatepackageFileNames
data-member of the generator; - The generator supports all-in-one (default), one-group-per-package and one-component-per-package modes.
Topic-rename: cpack-nuget