mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-04 05:10:10 -05:00
CPack-FreeBSD: add a generator for FreeBSD pkg(8)
Adds an option CPACK_ENABLE_FREEBSD_PKG to allow CPack to look for FreeBSD's libpkg / pkg(8). If this is set and the libpkg headers and library are found (which they will be, by default, on any FreeBSD system), then add a FreeBSD pkg(8) generator. The FreeBSD package tool pkg(8) uses tar.xz files (.txz) with two metadata files embedded (+MANIFEST and +COMPACT_MANIFEST). This introduces a bunch of FreeBSD-specific CPACK_FREEBSD_PACKAGE_* variables for filling in the metadata; the Debian generator does something similar. Documentation for the CPack CMake-script is styled after the Debian generator. Implementation notes: - Checks for libpkg -- the underlying implementation for pkg(8) -- and includes FreeBSD package-generation if building CMake on a UNIX host. Since libpkg can be used on BSDs, Linux and OSX, this potentially adds one more packaging format. In practice, this will only happen on FreeBSD and DragonflyBSD. - Copy-paste from cmCPackArchiveGenerator to special-case the metadata generation and to run around the internal archive generation: use libpkg instead. - Generating the metadata files is a little contrived. - Most of the validation logic for package settings is in CPackFreeBSD.cmake, as well as the code that tries to re-use packaging settings that may already be set up for Debian. - libpkg has its own notion of output filename, so we have another contrived bit of code that munges the output file list so that CPack can find the output. - Stick with C++98.
This commit is contained in:
committed by
Brad King
parent
c095e90f3a
commit
2042cae9a5
@@ -60,6 +60,7 @@ All Modules
|
||||
/module/CPackCygwin
|
||||
/module/CPackDeb
|
||||
/module/CPackDMG
|
||||
/module/CPackFreeBSD
|
||||
/module/CPackIFW
|
||||
/module/CPackIFWConfigureFile
|
||||
/module/CPackNSIS
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
.. cmake-module:: ../../Modules/CPackFreeBSD.cmake
|
||||
@@ -0,0 +1,5 @@
|
||||
cpack-freebsd-pkg
|
||||
-----------------
|
||||
|
||||
* CPack gained a ``FREEBSD`` generator for FreeBSD ``pkg(8)``, configured
|
||||
by the :module:`CPackFreeBSD` module.
|
||||
Reference in New Issue
Block a user