Commit Graph

746 Commits

Author SHA1 Message Date
Brad King
39b50975d9 CPack: Fix .dmg HFS+ creation on macOS APFS hosts
When running `hdiutil create`, specify the HFS+ filesystem explicitly.
Otherwise `hdiutil` may choose a filesystem based on the host.  We do
not want to create APFS images for `.dmg` packages because they may not
mount on macOS versions prior to 10.12.
2017-10-02 10:09:37 -04:00
Rolf Eike Beer
ec30129b41 CPack: put local variable on the stack 2017-09-29 21:11:53 +02:00
Brad King
e24e0ff6fa Merge topic 'clang-tidy'
77f674be Fix some occurrences of readability-braces-around-statements
f0bab294 Convert some leftover loops to C++11 range-based loop
b5d7f5b0 Fix occurrences of readability-non-const-parameter
9a2da339 Fix some occurrences of readability-avoid-const-params-in-decls
870dd06d Fix left-over occurrences of else-after-return
2033abff Fix minor clang-tidy findings
79b8c380 Improve several occurrences of vector::push_back in loops
a45928cd Fix some occurrences of missing override keywords
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1292
2017-09-29 08:48:16 -04:00
Matthias Maennich
77f674be35 Fix some occurrences of readability-braces-around-statements
Fix issues diagnosed by clang-tidy [readability-braces-around-statements]

Signed-off-by: Matthias Maennich <matthias@maennich.net>
2017-09-28 07:23:43 -04:00
Matthias Maennich
f0bab294dc Convert some leftover loops to C++11 range-based loop
Fix issues diagnosed by clang-tidy [modern-loop-convert]

Signed-off-by: Matthias Maennich <matthias@maennich.net>
2017-09-28 07:23:43 -04:00
Matthias Maennich
870dd06da1 Fix left-over occurrences of else-after-return
Fix issues diagnosed by clang-tidy [readability-else-after-return]

These were mostly only showing up on OSX.

Signed-off-by: Matthias Maennich <matthias@maennich.net>
2017-09-28 07:23:42 -04:00
Matthias Maennich
2033abff0d Fix minor clang-tidy findings
Fix issues diagnosed by clang-tidy
 - modernize-use-bool-literals
 - misc-string-integer-assignment
 - performance-faster-string-find
 - readability-redundant-string-cstr
 - readability-delete-null-pointer

Signed-off-by: Matthias Maennich <matthias@maennich.net>
2017-09-28 07:23:42 -04:00
Matthias Maennich
b128f8c5bc Clean up some C-Style casts
Fix issues diagnosed by clang-tidy [google-readability-casting]

Signed-off-by: Matthias Maennich <matthias@maennich.net>
2017-09-28 07:23:41 -04:00
Matthias Maennich
bb0ad1bea8 Fix some occurrences using string by value rather than by const&
Fix issues diagnosed by clang-tidy
 - performance-unnecessary-value-param
 - performance-unnecessary-copy-initialization

Signed-off-by: Matthias Maennich <matthias@maennich.net>
2017-09-28 07:23:40 -04:00
Brad King
94e67fa118 cpack: Fix compilation on Cygwin after auto_ptr removal
Fix a compilation error on Cygwin introduced by commit f0489856e3
(Retire std::auto_ptr and its macro CM_AUTO_PTR, 2017-09-21).
2017-09-27 09:04:28 -04:00
Matthias Maennich
f0489856e3 Retire std::auto_ptr and its macro CM_AUTO_PTR
Signed-off-by: Matthias Maennich <matthias@maennich.net>
2017-09-26 00:07:19 +02:00
Brad King
62bdc587eb Merge topic 'cpackifw-options'
9a24ab6b CPackIFW: Add some options

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1298
2017-09-25 08:58:25 -04:00
Brad King
00389afa34 Merge topic 'string-empty'
37d9387b Replace empty-string comparisons with checking against `empty()`.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1275
2017-09-22 10:11:23 -04:00
Konstantin Podsvirov
9a24ab6b63 CPackIFW: Add some options
The `CPackIFW` module `cpack_ifw_configure_component` and
`cpack_ifw_configure_component_group` commands gained a new
`REPLACES` and `CHECKABLE` options.
2017-09-21 21:34:33 +03:00
Brad King
5737bb3756 Merge topic 'cpack-different-checksum-file-per-generator'
b06870e5 CPack: use a distinct checksum file for each generator

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1291
2017-09-21 08:19:52 -04:00
Brad King
5c5b28dd9d Merge topic 'cpack-check-install-script'
09166339 CPack: Add missing check for CPACK_INSTALL_SCRIPT variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1090
2017-09-21 08:19:11 -04:00
Pavel Solodovnikov
37d9387be3 Replace empty-string comparisons with checking against empty(). 2017-09-21 11:23:19 +03:00
Domen Vrankar
b06870e5ff CPack: use a distinct checksum file for each generator
Different CPack generators could produce checksum files with the same
name which were overwritten by each other since only package name
without extensions was used for checksum file name generation.  This
patch adds package extension to checksum files to prevent collisions.

Fixes: #16840
2017-09-20 14:01:23 -04:00
Alex Turbov
091663395e CPack: Add missing check for CPACK_INSTALL_SCRIPT variable
Also add a test case that uses CPACK_INSTALL_SCRIPT.

Co-Author: Domen Vrankar <domen.vrankar@gmail.com>
Fixes: #15005
2017-09-20 13:33:22 -04:00
Brad King
cb36e91eff Merge topic 'cxx11-nullptr'
a5279ae5 Use C++11 nullptr (cont.)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1283
2017-09-20 13:17:25 -04:00
Matthias Maennich
a5279ae553 Use C++11 nullptr (cont.)
Fix remaining occurrences of the issue addressed in commit 5962db4389
(Use C++11 nullptr, 2017-08-22) that are only showing up on macOS.

Signed-off-by: Matthias Maennich <matthias@maennich.net>
2017-09-19 11:44:21 -04:00
Brad King
4547d9a830 Merge topic 'ranged-for'
f43baf69 Meta: modernize old-fashioned loops to range-based `for` (CPack).

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1274
2017-09-19 09:07:48 -04:00
Brad King
7c28081c14 Merge topic 'string-clear'
5db3aac1 Meta: replace empty-string assignments with `clear()`.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1276
2017-09-19 08:27:00 -04:00
Pavel Solodovnikov
f43baf6981 Meta: modernize old-fashioned loops to range-based for (CPack).
Changes done via `clang-tidy` with some manual fine-tuning
for the variable naming and `auto` type deduction
where appropriate.
2017-09-19 08:06:08 -04:00
Pavel Solodovnikov
5db3aac111 Meta: replace empty-string assignments with clear(). 2017-09-16 02:26:49 +03:00
Brad King
0b33aee48b Use C++11 override instead of CM_OVERRIDE
We now require C++11 support including `override`.  Drop use of
the old compatibility macro.  Convert references as follows:

    git grep -l CM_OVERRIDE -- '*.h' '*.hxx' '*.cxx' |
      xargs sed -i 's/CM_OVERRIDE/override/g'
2017-09-15 10:06:41 -04:00
Daniel Pfeifer
2b4c32c95f clang-format: format all code as Cpp11 2017-08-30 11:07:05 -04:00
Brad King
c23481d051 Merge topic 'cpack-dmg-iwyu'
8c51dbdd cmCPackDragNDropGenerator: Add missing include

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1206
2017-08-30 10:44:09 -04:00
Brad King
8c51dbdd9b cmCPackDragNDropGenerator: Add missing include
We use `std::sort` and so must include `<algorithm>`.

Issue: #17233
2017-08-29 11:24:36 -04:00
Brad King
55e281c3b7 Merge topic 'cpackifw-repositories-directories'
5fe64511 CPackIFW: Add CPACK_IFW_REPOSITORIES_DIRECTORIES variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1150
2017-08-28 09:53:10 -04:00
Daniel Pfeifer
b044dedecd Merge topic 'iwyu-keep-cmConfigure'
ca2233e3 IWYU: Mark cmConfigure.h with pragma: keep

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1187
2017-08-27 03:52:05 -04:00
Daniel Pfeifer
ca2233e31f IWYU: Mark cmConfigure.h with pragma: keep
Also remove `#include "cmConfigure.h"` from most source files.
2017-08-26 07:41:04 +02:00
Daniel Pfeifer
df556e65f2 cmCPackDebGenerator: Use libarchive to create .deb file
Remove the copy of OpenBSD's 'ar' implementation and instead
use cmArchiveWrite with the "arbsd" format.
2017-08-25 23:01:50 +02:00
Daniel Pfeifer
5962db4389 Use C++11 nullptr 2017-08-24 23:39:47 +02:00
Konstantin Podsvirov
5fe64511d6 CPackIFW: Add CPACK_IFW_REPOSITORIES_DIRECTORIES variable
Add CPACK_IFW_REPOSITORIES_DIRECTORIES variable to specify
additional repositories dirs that will be used to resolve and
repack dependent components
2017-08-17 21:41:16 +03:00
Konstantin Podsvirov
45623e7255 CPackIFW: Add CPACK_IFW_PACKAGE_FILE_EXTENSION variable
Add CPACK_IFW_PACKAGE_FILE_EXTENSION variable to customize
target binary format.
2017-08-10 00:20:11 +03:00
Gusts Kaksis
351c1b1ad6 CPack: Pass volume mount name to AppleScript instead of volume name.
Get the mount name from mount point path returned by hdiutil instead of
assuming it is the volume name.  They can be different in case of
conflict with an already-mounted volume.
2017-07-20 11:22:03 -04:00
André Klitzing
c4647d8432 Change ComputeFileMD5 to ComputeFileHash
* Use a parameter to select hash algorithm
* Return a std::string as result or an empty
  string if it fails
* Avoids unnecessary copy of hash value
2017-07-14 08:57:17 +02:00
Nils Gladitz
5299141320 CPackDeb: Enable the DEB generator on Windows
While some features require external Unix tools the
generator is mostly portable.

By enabling it on Windows it can be used for cross platform
packaging.
2017-06-28 19:55:12 +02:00
Brad King
54c51e792e cmCPackDragNDropGenerator: Drop unused member
Drop the unused `InstallPrefix` member that shadows a member in a
subclass.
2017-06-14 16:34:40 -04:00
Brad King
0cb8730c0b Merge topic 'cpack-freebsd-pkg'
2042cae9 CPack-FreeBSD: add a generator for FreeBSD pkg(8)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !693
2017-06-12 10:21:42 -04:00
Adriaan de Groot
2042cae9a5 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.
2017-06-10 07:53:59 -04:00
Brad King
62eec34c29 Add CM_OVERRIDE to CPack generator destructors 2017-06-08 09:38:07 -04:00
Pavel Solodovnikov
db2d46e2dd Remove second arg: npos in substr usages 2017-06-01 14:19:52 -04:00
Daniel Pfeifer
542d9d5e25 cmCPackLog: pass std::string by const& 2017-05-25 23:40:50 +02:00
Domen Vrankar
9e06e97d30 CPack/Archive: per component filenames support
Support for setting archive packager specific
per component filenames and monolithic package
filenames.
2017-05-17 00:47:15 +02:00
Brad King
ef8ac5ad5a Merge topic 'cpackifw-i18n'
72ac7ad9 CPackIFW: Internationalization Support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !748
2017-05-16 09:55:29 -04:00
Domen Vrankar
6949b71ff1 CPack unify component/monolithic package symlink handling
Non component package generation was recursing through
symlinks while monolithic package generation did not.
This was causing component archive packages to contain
both symlink and a directory with the same name on the
same level if symlink contained files which caused errors
during extraction of such packages.

Closes #16051
2017-05-14 23:45:18 +02:00
Konstantin Podsvirov
72ac7ad98d CPackIFW: Internationalization Support
Changes:
- DISPLAY_NAME and DESCRIPTION in CPackIFW module now is MULTI_ARGS;
- Added internationalization support for DisplayName and Description
  properties in cmCPackIFWPackage class;
- Added documentation to CPackIFW module;
- Added release note.
2017-05-13 02:34:15 +03:00
Brad King
c2ea011830 Merge topic 'cpackifw-access-refactoring'
543cf134 CPackIFW: Access refactoring

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !820
2017-05-11 09:56:49 -04:00