Commit Graph

708 Commits

Author SHA1 Message Date
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
Konstantin Podsvirov
543cf13406 CPackIFW: Access refactoring
Changes:
- Access members with this->;
- Access nested enum values with class name.
2017-05-10 00:29:18 +03:00
Daniel Pfeifer
da8faa8c7e cmState: remove RemoveUnscriptableCommands 2017-05-08 22:58:01 +02:00
Daniel Pfeifer
c36d63cd48 cmake: initialize with Role that controls which commands to register 2017-05-08 22:29:44 +02:00
Brad King
b605bdfd03 Merge topic 'vector-over-list'
3e027d9d c++: prefer vectors over lists

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !799
2017-05-05 09:49:41 -04:00
Ben Boeckel
3e027d9def c++: prefer vectors over lists
None of these usages of `std::list` were inserting or removing elements
in the middle of the structure, so there were no benefits to using it.

Other uses were related to C pointers being stable in a list of strings
whereas in a vector of strings, small pointer optimizations could be
moved and become invalid after a modification to the hosting vector.
None of these uses modified the vector after handing out a C string to
an external store.
2017-05-04 11:17:49 -04:00
Konstantin Podsvirov
9c13e8eb6f CPackIFW: Refactor out some commonly used code
Move common used code to new cmCPackIFWCommon base class.
2017-05-03 11:32:05 -04:00
Konstantin Podsvirov
9a740f1b59 cmCPackIFWInstaller: fix validation of WizardStyle option 2017-04-26 08:59:57 +02:00
Daniel Pfeifer
ba8571ff2d clang-tidy: use operators for string comparison 2017-04-26 08:59:56 +02:00
Brad King
75d91e9c85 Merge topic 'wix-attributes-patch'
58cf9d41 wix: adds ability to modify attributes with patch
03628bb6 wix: fix spelling error in function name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !742
2017-04-25 09:05:37 -04:00
Keith Holman
58cf9d417e wix: adds ability to modify attributes with patch
Adds the ability to attributes to generated XML files for features with
the WiX patch system.  To modify attributes additional attributes may be
added within the 'CPackWixFragment' xml tag.

Fixes: #16813
Signed-off-by: Keith Holman <keith.holman@windriver.com>
2017-04-24 10:06:45 -04:00
Keith Holman
03628bb699 wix: fix spelling error in function name
The function "AddDirectoryAndFileDefinitions" was missing the last "i"
in the function name.  This patch corrects the spelling so that the
function can be found easier when searching through the source code.

Signed-off-by: Keith Holman <keith.holman@windriver.com>
2017-04-24 10:04:51 -04:00
Daniel Pfeifer
012972a926 clang-tidy: remove reduntant .data() calls 2017-04-21 10:44:07 +02:00
Brad King
c94f1bcf92 Drop Visual Studio 7 .NET 2003 generator
This generator has been deprecated since CMake 3.6.  Remove it.
2017-04-19 15:28:05 -04:00
Daniel Pfeifer
1d829c862c Use quotes for non-system includes
Automate with:

git grep -l '#include <cm_' -- Source \
  | xargs sed -i 's/#include <\(cm_.*\)>/#include "\1"/g'

git grep -l '#include <cmsys/' -- Source \
  | xargs sed -i 's/#include <\(cmsys\/.*\)>/#include "\1"/g'

git grep -l '#include <cm[A-Z]' -- Source \
  | xargs sed -i 's/#include <\(cm[A-Z].*\)>/#include "\1"/g'
2017-04-11 22:35:21 +02:00
Daniel Pfeifer
26ee9e4291 CPack: drop CPack prefix for includes
Automate with:

git grep -l '#include <CPack/' -- Source \
  | xargs sed -i 's/#include <CPack\/\(.*\)>/#include "\1"/g'

git grep -l '#include "CPack/' -- Source \
  | xargs sed -i 's/#include "CPack\/\(.*\)"/#include "\1"/g'
2017-04-11 22:35:20 +02:00
Daniel Pfeifer
5afac50f68 cmConfigure: Ensure separate include block in headers
Make sure that `#include <cmConfigure.h>` is followed by an empty line
in header files.  This is necessary to make sure that changing <> to ""
does not affect the include ordering of clang-format.

Automate with:

git grep -l '#include <cmConfigure.h>' | grep -v '.cxx$' \
| xargs sed -i '/#include <cmConfigure.h>/ { N; N; s/\n\{1,2\}/\n\n/ }'
2017-04-11 22:35:20 +02:00
Daniel Pfeifer
e9fc7ff505 Add self-sufficient wrapper for <sys/stat.h> 2017-03-24 22:58:25 +01:00
Daniel Pfeifer
2a827b8244 cmCPackGenerator: Move macros to bottom of file
Since the class name is used in the macros, the iwyu tool gets confused
wheter it needs a forward declaration or not.
2017-03-23 23:08:57 +01:00
Ben Boeckel
aba92ffd92 cmWorkingDirectory: use the new class
These functions just need to change the directory for a block of code
and then go back to the caller's expected location. Use
cmWorkingDirectory to ensure that all return paths are handled.
2017-03-06 10:38:58 -05:00
Ben Boeckel
c3304fa510 OSXScriptLauncher: remove unused variable 2017-03-06 10:37:41 -05:00
Clinton Stimpson
356068cd2e cmCPackDragNDropGenerator: Improving handling of temporary dmg images
Adjust the image format to create the initial `dmg`, and convert only
when necessary.  This eliminates spurious

    hdiutil create -format UDRW

failures I'm seeing which may be related to an anti-virus scanner.
Running

    hdiutil create -format UDRW -verbose

indicates a "resource is busy" issue when unmounting an image.
2017-02-23 14:12:52 -05:00
Brad King
3c0de6db2d Merge topic 'iwyu'
d58d28a9 ParserHelper: Move macros to bottom of files
07953c18 remove file cmStandardIncludes.h
f918b053 cmFortranParser: include what you use
b74314c6 cmDependsJavaParser: include what you use
74404df4 cmCommandArgumentParser: include what you use
e7168c08 cmExprParser: include what you use
ee72803e fix some include-what-you-use diagnostics
2017-02-20 10:43:07 -05:00
Brad King
66094d1224 Merge topic 'productbuild_component_plist'
d32f9deb CPack: Add option to specify --component-plist for productbuild
2017-02-20 10:43:05 -05:00
Daniel Pfeifer
ee72803e9f fix some include-what-you-use diagnostics 2017-02-17 22:12:21 +01:00
Tim Hutt
734581f49f CPack: Add support for CPACK_PRODUCTBULID_RESOURCES_DIR
This allows you to copy custom files (e.g. a background image) into the
macOS installer.

Fixes: #16604
2017-02-17 11:47:00 -05:00
Tim Hutt
d32f9debc8 CPack: Add option to specify --component-plist for productbuild
When using the productbuild generator this lets you specify the value of
the `--component-plist` parameter when it runs pkgbuild for a component.

Fixes: #16638
2017-02-17 11:40:45 -05:00
Nils Gladitz
558a69fc90 CPackWIX: Introduce new CPACK_WIX_ROOT_FOLDER_ID variable
The new variable allows specification of a custom root folder ID.
The implicit default is "ProgramFiles<64>Folder".

The "<64>" token is replaced by "" for 32-bit and "64" for 64-bit builds.

Inspired-By: Eric Backus
Fixes: #16573
2017-02-06 14:53:16 -05:00
Roman Wüger
48aad9cda0 CPackProductBuild: Add options to sign packages 2017-02-04 08:07:48 -05:00
Konstantin Podsvirov
e5089c562c CPackIFW: Add some options
The cpack_ifw_configure_component_group command gained options:
- DEPENDS.

The cpack_ifw_configure_component and
cpack_ifw_configure_component_group commands gained options:
- REQUIRES_ADMIN_RIGHTS;
- UPDATE_TEXT;
- SORTING_PRIORITY; # New name for PRIORITY
- DEPENDENCIES; # Alias for DEPENDS
- AUTO_DEPEND_ON;
- TRANSLATIONS.

For both commands PRIORITY option now is depreceted. Please
use SORTING_PRIORITY instead.
2017-01-24 17:03:37 +03:00
Alexander Voitenko
3fc4a2b71a QtIFW: Added new options to QtIFW cpack generator for modifying wizard style 2017-01-17 14:12:02 +03:00
Domen Vrankar
6daa2d384e CPack/Deb invalid md5sums file fix
Monolithic deb packages were packaged
with invalid md5sums file as trailing
slash in path was causing string replace
to fail and preserve build path.

Fixes #16517
2016-12-23 21:10:52 +01:00
Daniel Pfeifer
88da3d68c2 clang-tidy: apply misc-suspicious-string-compare fixes 2016-12-12 14:04:16 -05:00
Daniel Pfeifer
2988abd939 clang-tidy: apply modernize-use-bool-literals fixes 2016-12-12 14:04:14 -05:00
Brad King
bd6a269e1a Merge topic 'utf8pipe'
076aef8e Windows: Use UTF-8 for pipes in CMake, CTest and CPack
2016-12-02 09:53:53 -05:00
Brad King
2036639b55 Merge topic 'cpack-ifw-options'
88ecfd8b CPackIFW: Add some options
2016-11-30 08:37:30 -05:00
Dāvis Mosāns
076aef8e45 Windows: Use UTF-8 for pipes in CMake, CTest and CPack
Applications which process CMake output will need to decode it as UTF-8
instead of console's codepage.
2016-11-30 00:38:48 +02:00
Daniel Pfeifer
d0c14dfb36 avoid including cmStandardIncludes.h 2016-11-28 14:06:41 -05:00
Daniel Pfeifer
7b4244aceb iwyu: Fix more findings 2016-11-28 14:06:40 -05:00