You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

136 lines
5.3 KiB

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.
9 years ago
  1. CMake - Cross Platform Makefile Generator
  2. Copyright 2000-2025 Kitware, Inc. and Contributors
  3. All rights reserved.
  4. Redistribution and use in source and binary forms, with or without
  5. modification, are permitted provided that the following conditions
  6. are met:
  7. * Redistributions of source code must retain the above copyright
  8. notice, this list of conditions and the following disclaimer.
  9. * Redistributions in binary form must reproduce the above copyright
  10. notice, this list of conditions and the following disclaimer in the
  11. documentation and/or other materials provided with the distribution.
  12. * Neither the name of Kitware, Inc. nor the names of Contributors
  13. may be used to endorse or promote products derived from this
  14. software without specific prior written permission.
  15. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  16. "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  17. LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  18. A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  19. HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  20. SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  21. LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  22. DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  23. THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  24. (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  25. OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  26. ------------------------------------------------------------------------------
  27. The following individuals and institutions are among the Contributors:
  28. * Aaron C. Meadows <cmake@shadowguarddev.com>
  29. * Adriaan de Groot <groot@kde.org>
  30. * Aleksey Avdeev <solo@altlinux.ru>
  31. * Alexander Neundorf <neundorf@kde.org>
  32. * Alexander Smorkalov <alexander.smorkalov@itseez.com>
  33. * Alexey Sokolov <sokolov@google.com>
  34. * Alex Merry <alex.merry@kde.org>
  35. * Alex Turbov <i.zaufi@gmail.com>
  36. * Andreas Pakulat <apaku@gmx.de>
  37. * Andreas Schneider <asn@cryptomilk.org>
  38. * André Rigland Brodtkorb <Andre.Brodtkorb@ifi.uio.no>
  39. * Axel Huebl, Helmholtz-Zentrum Dresden - Rossendorf
  40. * Benjamin Eikel
  41. * Bjoern Ricks <bjoern.ricks@gmail.com>
  42. * Brad Hards <bradh@kde.org>
  43. * Christopher Harvey
  44. * Christoph Grüninger <foss@grueninger.de>
  45. * Clement Creusot <creusot@cs.york.ac.uk>
  46. * Daniel Blezek <blezek@gmail.com>
  47. * Daniel Pfeifer <daniel@pfeifer-mail.de>
  48. * Dawid Wróbel <me@dawidwrobel.com>
  49. * Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
  50. * Eran Ifrah <eran.ifrah@gmail.com>
  51. * Esben Mose Hansen, Ange Optimization ApS
  52. * Geoffrey Viola <geoffrey.viola@asirobots.com>
  53. * Google Inc
  54. * Gregor Jasny
  55. * Helio Chissini de Castro <helio@kde.org>
  56. * Ilya Lavrenov <ilya.lavrenov@itseez.com>
  57. * Insight Software Consortium <insightsoftwareconsortium.org>
  58. * Intel Corporation <www.intel.com>
  59. * Jan Woetzel
  60. * Jordan Williams <jordan@jwillikers.com>
  61. * Julien Schueller
  62. * Kelly Thompson <kgt@lanl.gov>
  63. * Konstantin Podsvirov <konstantin@podsvirov.pro>
  64. * Laurent Montel <montel@kde.org>
  65. * Mario Bensi <mbensi@ipsquad.net>
  66. * Martin Gräßlin <mgraesslin@kde.org>
  67. * Mathieu Malaterre <mathieu.malaterre@gmail.com>
  68. * Matthaeus G. Chajdas
  69. * Matthias Kretz <kretz@kde.org>
  70. * Matthias Maennich <matthias@maennich.net>
  71. * Michael Hirsch, Ph.D. <www.scivision.co>
  72. * Michael Stürmer
  73. * Miguel A. Figueroa-Villanueva
  74. * Mike Durso <rbprogrammer@gmail.com>
  75. * Mike Jackson
  76. * Mike McQuaid <mike@mikemcquaid.com>
  77. * Nicolas Bock <nicolasbock@gmail.com>
  78. * Nicolas Despres <nicolas.despres@gmail.com>
  79. * Nikita Krupen'ko <krnekit@gmail.com>
  80. * NVIDIA Corporation <www.nvidia.com>
  81. * OpenGamma Ltd. <opengamma.com>
  82. * Patrick Stotko <stotko@cs.uni-bonn.de>
  83. * Per Øyvind Karlsen <peroyvind@mandriva.org>
  84. * Peter Collingbourne <peter@pcc.me.uk>
  85. * Petr Gotthard <gotthard@honeywell.com>
  86. * Philip Lowman <philip@yhbt.com>
  87. * Philippe Proulx <pproulx@efficios.com>
  88. * Raffi Enficiaud, Max Planck Society
  89. * Raumfeld <raumfeld.com>
  90. * Roger Leigh <rleigh@codelibre.net>
  91. * Rolf Eike Beer <eike@sf-mail.de>
  92. * Roman Donchenko <roman.donchenko@itseez.com>
  93. * Roman Kharitonov <roman.kharitonov@itseez.com>
  94. * Ruslan Baratov
  95. * Sebastian Holtermann <sebholt@xwmw.org>
  96. * Stephen Kelly <steveire@gmail.com>
  97. * Sylvain Joubert <joubert.sy@gmail.com>
  98. * The Qt Company Ltd.
  99. * Thomas Sondergaard <ts@medical-insight.com>
  100. * Tobias Hunger <tobias.hunger@qt.io>
  101. * Todd Gamblin <tgamblin@llnl.gov>
  102. * Tristan Carel
  103. * University of Dundee
  104. * Vadim Zhukov
  105. * Will Dicharry <wdicharry@stellarscience.com>
  106. See version control history for details of individual contributions.
  107. The above copyright and license notice applies to distributions of
  108. CMake in source and binary form. Third-party software packages supplied
  109. with CMake under compatible licenses provide their own copyright notices
  110. documented in corresponding subdirectories or source files.
  111. ------------------------------------------------------------------------------
  112. CMake was initially developed by Kitware with the following sponsorship:
  113. * National Library of Medicine at the National Institutes of Health
  114. as part of the Insight Segmentation and Registration Toolkit (ITK).
  115. * US National Labs (Los Alamos, Livermore, Sandia) ASC Parallel
  116. Visualization Initiative.
  117. * National Alliance for Medical Image Computing (NAMIC) is funded by the
  118. National Institutes of Health through the NIH Roadmap for Medical Research,
  119. Grant U54 EB005149.
  120. * Kitware, Inc.