summaryrefslogtreecommitdiffstats
path: root/Modules/CPack.cmake
Commit message (Collapse)AuthorAgeFilesLines
* Cpack.cmake: Document some CPACK_* default valuesHarry Mallon2017-12-201-5/+6
|
* CPack: set variable commands in lower caseDomen Vrankar2017-11-191-1/+1
|
* CPack: enable setting default dir creation permissionsDomen Vrankar2017-11-081-0/+6
| | | | | | | | | | | Introduces CPACK_DEFAULT_DIRECTORY_INSTALL_PERMISSIONS variable which adds support for functionality introduced by CMAKE_DEFAULT_DIRECTORY_INSTALL_PERMISSIONS variable. Fixes #17333 # Conflicts: # Help/release/dev/cmake-default-dir-install-permissions.rst
* CPack-FreeBSD: add a generator for FreeBSD pkg(8)Adriaan de Groot2017-06-101-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* project: Add `DESCRIPTION` parameterAlex Turbov2017-04-111-3/+13
| | | | | | | | | | | | | | | | | It is quite often the project description has used in a real world software. Examples include: * part of a help screen of the application * builtin resources (`*.rc` files, data for "About" dialog of a GUI app, & etc) * most generators for CPack can use it * it could be used by documentary software (Doxygen, Sphinx) which is usually integrated to CMake based projects via `add_custom_target()` Now `project()` call learned an optional `DESCRIPTION` parameter with a short string describing a project. Being specified, it would set the `PROJECT_DESCRIPTION` variable which could be used in `configure_file()` or whatever user wants. Also `PROJECT_DESCRIPTION` is a default value for `CPACK_PACKAGE_DESCRIPTION_SUMMARY`.
* Help: De-duplicate and spell out supported hash algorithmsBrad King2016-11-101-1/+3
| | | | | | | Spell out the supported algorithms in a definition list in the `string(<HASH>)` command documentation. Revise the `file(<HASH>)` command and CPack module documentation to reference it instead of duplicating the list.
* Simplify CMake per-source license noticesBrad King2016-09-271-13/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | Per-source copyright/license notice headers that spell out copyright holder names and years are hard to maintain and often out-of-date or plain wrong. Precise contributor information is already maintained automatically by the version control tool. Ultimately it is the receiver of a file who is responsible for determining its licensing status, and per-source notices are merely a convenience. Therefore it is simpler and more accurate for each source to have a generic notice of the license name and references to more detailed information on copyright holders and full license terms. Our `Copyright.txt` file now contains a list of Contributors whose names appeared source-level copyright notices. It also references version control history for more precise information. Therefore we no longer need to spell out the list of Contributors in each source file notice. Replace CMake per-source copyright/license notice headers with a short description of the license and links to `Copyright.txt` and online information available from "https://cmake.org/licensing". The online URL also handles cases of modules being copied out of our source into other projects, so we can drop our notices about replacing links with full license text. Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority of the replacements mechanically. Manually fix up shebang lines and trailing newlines in a few files. Manually update the notices in a few files that the script does not handle.
* CPack/RPM debuginfo packages must contain sourcesDomen Vrankar2016-09-271-0/+2
| | | | | Issue #15668 fix was missing relevant source files in debuginfo package.
* Merge topic 'cpack-rpm-srpm-package'Brad King2016-09-201-0/+5
|\ | | | | | | | | d9cec8ad CPack/RPM: Generate source rpm (SRPM) packages on demand
| * CPack/RPM: Generate source rpm (SRPM) packages on demandDomen Vrankar2016-09-201-0/+5
| | | | | | | | Closes: #15839
* | CPack: Add option to generate a checksum file next to each package filePetr Orlov2016-09-191-0/+9
|/ | | | Add variable CPACK_PACKAGE_CHECKSUM to activate it.
* Use string(APPEND) in ModulesDaniel Pfeifer2016-07-271-1/+1
| | | | | | | Automate with: find Modules -type f -print0 | xargs -0 perl -i -0pe \ 's/set\(([a-zA-Z0-9_]+)(\s+)"\$\{\1\}([^"])/string(APPEND \1\2"\3/g'
* productbuild: Add new productbuild cpack generator.Clinton Stimpson2016-06-031-0/+3
| | | | This cpack generator basically replaces the obsolete PackageMaker generator.
* CPack: Fix CPACK_OSX_SYSROOT with symbolic CMAKE_OSX_SYSROOT (#15816)Brad King2015-10-281-1/+1
| | | | | | | We support setting CMAKE_OSX_SYSROOT to a symbolic value like "macosx". Modules/Platform/Darwin-Initialize.cmake takes care of finding the actual SDK path on disk. Use that result to set CPACK_OSX_SYSROOT instead.
* Introduction of CPACK_VERBATIM_VARIABLES variableRoman Donchenko2015-09-201-8/+38
| | | | | | | | | | If variable is set to TRUE, values of all variables prefixed with CPACK_ will be escaped so special characters such as dolar sign, quotes or foreward slash will not be lost. By default variable is treated as set to FALSE for back compatibility. The cpack_encode_variables macro is changed into a function to remove scope pollution. There should be no other effects.
* CPack: don't mangle CMake-special characters when applying default settingsRoman Donchenko2015-09-091-43/+48
| | | | | | | | | | | | | | | Mangling is prevented by using a function instead of a macro for setting default value of some CPack variables. Function is meant for internal use in CPack.cmake only. Old macro is deprecated but kept for backwards compatibility - was intended for internal use only as it can't be used for CPack after CPack.cmake script is included. Patch removes local workarounds that were required by old macro, fixes default setting of variables that by default inherit value from another variable that already went through old default setting macro (e.g. value of CPACK_PACKAGE_INSTALL_REGISTRY_KEY caused error for wrong escapes if CPACK_PACKAGE_INSTALL_DIRECTORY contained escaped back slashes) and provides a test for correct escaping of characters.
* CPack: Fix typo in CPACK_INSTALL_CMAKE_PROJECTS docs (#15543)Felix Geyer2015-04-291-1/+1
|
* CPack: be more stringent when selecting variables to encodeРоман Донченко2015-03-021-1/+1
| | | | The old version would admit, for example, a variable named "xxxCPACK".
* CPack: Fix NSIS default 64-bit Windows install directory (#14211)Brad King2015-02-041-3/+8
| | | | | | | | | | When targeting Windows with a 64-bit architecture, use "$PROGRAMFILES64" to get the Program Files folder. Use CMAKE_SIZEOF_VOID_P to check for the architecture size instead of CMAKE_CL_64 because the latter is not defined for all compilers. Inspired-by: Hugh Sorby <h.sorby@auckland.ac.nz> Inspired-by: İsmail Dönmez <ismail@donmez.ws>
* CPack: Sort packaging options lexicographicallyBrad King2014-07-311-27/+27
| | | | This will allow new options to be added more cleanly.
* CPack: Expand mark_as_advanced arguments to one-per-lineBrad King2014-07-311-9/+26
| | | | This will allow new values to be added without editing existing lines.
* CPack: Mark CPACK_BINARY_IFW option as advancedBrad King2014-07-301-0/+1
| | | | | | All similar options are already marked. Suggested-by: Daniel Pfeifer <daniel@pfeifer-mail.de>
* CPack: Add lzma-compressed package optionsDaniel Pfeifer2014-07-301-0/+10
| | | | | | | | | Add options to package binary and source tarballs: CPACK_BINARY_7Z CPACK_BINARY_TXZ CPACK_SOURCE_7Z CPACK_SOURCE_TXZ
* CPack: Add an "IFW" generator for Qt Framework InstallerKonstantin Podsvirov2014-07-281-0/+2
| | | | | | | | Add support for packaging with the Qt Framework Installer tools: http://qt-project.org/doc/qtinstallerframework/index.html Reviewed-by: Nils Gladitz <nilsgladitz@gmail.com>
* CPackWiX: Add support for CPACK_CREATE_DESKTOP_LINKSTimo Rothenpieler2014-02-081-1/+3
|
* Drop use of configure_file IMMEDIATE optionDaniele E. Domenichelli2013-11-131-2/+2
| | | | | | Since commit 7d47c693 (Drop compatibility with CMake < 2.4, 2013-10-08) we no longer need to use the configure_file IMMEDIATE option to support compatibility modes less than 2.0.
* Merge topic 'osx-no-PackageMaker'Brad King2013-11-051-1/+1
|\ | | | | | | | | 7947981 CPack: Disable OS X PackageMaker by default (#13662)
| * CPack: Disable OS X PackageMaker by default (#13662)Brad King2013-11-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | As mentioned in commit 4693cf84 (Xcode: Detect new default locations of Xcode 4.3 bits and pieces) PackageMaker was split out of Xcode 4.3 and above into a separate Auxiliary tools package. Since Xcode 5.0 or so, Apple no longer distributes PackageMaker as part of the available development tools so it can only be obtained from old packages. Disable the CPACK_BINARY_PACKAGEMAKER option by default as is the case for most other tool-dependent generators.
* | cpack: For DragNDrop generator, add sysroot option when calling Rez.Clinton Stimpson2013-11-011-2/+2
| |
* | cpack: For DragNDrop generator, add sysroot option when calling Rez.Clinton Stimpson2013-11-011-0/+5
|/ | | | | | | Also adding overwrite option (-ov) in case multiple temporary dmg files are being created. Fixes bug #14536.
* CPack: Replace #<type> markup with reStructuredText equivalentKitware Robot2013-10-161-313/+152
| | | | | | | Drop #end and #module. Convert #section to a subsection header. Convert #variable to the cmake domain "variable" directive. Convert #macro to the cmake domain "command" directive. Perform minor formatting fixes in text near these changes.
* Convert builtin help to reStructuredText source filesKitware Robot2013-10-151-217/+370
| | | | | | | | Run the convert-help.bash script to convert documentation: ./convert-help.bash "/path/to/CMake-build/bin" Then remove it.
* Improve documentation for CPACK_PACKAGE_INSTALL_REGISTRY_KEY.Clinton Stimpson2013-05-141-2/+2
| | | | Fixes issue 13787.
* CPack: Add a WiX Generator (#11575)Nils Gladitz2012-12-031-1/+6
| | | | | | | | | | This new CPack generator produces an *.msi installer file. Requires having the WiX Toolset installed in order to work properly. Download the WiX Toolset installer "WiX36.exe" here: http://wix.codeplex.com/releases/view/93929
* Remove CMake-language block-end command argumentsKitware Robot2012-08-131-38/+38
| | | | | | | | | | | | | | | | | Ancient versions of CMake required else(), endif(), and similar block termination commands to have arguments matching the command starting the block. This is no longer the preferred style. Run the following shell code: for c in else endif endforeach endfunction endmacro endwhile; do echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | egrep -z -v 'Tests/CMakeTests/While-Endwhile-' | xargs -0 sed -i -f convert.sed && rm convert.sed
* Convert CMake-language commands to lower caseKitware Robot2012-08-131-68/+68
| | | | | | | | | | | | | | | | | Ancient CMake versions required upper-case commands. Later command names became case-insensitive. Now the preferred style is lower-case. Run the following shell code: cmake --help-command-list | grep -v "cmake version" | while read c; do echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | xargs -0 sed -i -f convert.sed && rm convert.sed
* Remove trailing whitespace from most CMake and C/C++ codeKitware Robot2012-08-131-9/+9
| | | | | | | | | | | | | | | | | Our Git commit hooks disallow modification or addition of lines with trailing whitespace. Wipe out all remnants of trailing whitespace everywhere except third-party code. Run the following shell code: git ls-files -z -- \ bootstrap doxygen.config '*.readme' \ '*.c' '*.cmake' '*.cpp' '*.cxx' \ '*.el' '*.f' '*.f90' '*.h' '*.in' '*.in.l' '*.java' \ '*.mm' '*.pike' '*.py' '*.txt' '*.vim' | egrep -z -v '^(Utilities/cm|Source/(kwsys|CursesDialog/form)/)' | egrep -z -v '^(Modules/CPack\..*\.in)' | xargs -0 sed -i 's/ \+$//'
* Do not provide defaul value for CPACK_PACKAGE_DIRECTORY if found in config.Eric NOULARD2012-07-041-0/+8
| | | | This fixes bug #0012906.
* Merge topic 'fix-9946-uninstall-before-install'David Cole2012-04-251-0/+4
|\ | | | | | | | | fe58b67 Added CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL
| * Added CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALLPatrick Gansterer2012-04-221-0/+4
| | | | | | | | If CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL is set to ON the NSIS installer will look for a previous installed version and ask the user about uninstall.
* | Fix CPack RPM man page typo detected by lintian.Modestas Vainius2012-04-201-0/+1
|/ | | | Signed-off-by: Eric NOULARD <eric.noulard@gmail.com>
* Add some missing CPACK_NSIS_xxx doc and move some to common CPack section.Eric NOULARD2012-03-061-0/+14
|
* Review and update CPack variable documentation.Eric NOULARD2012-02-251-78/+106
| | | | | | | This concerns all variables common to all CPack generators. Variables mainly used and/or set in CPack.cmake are documented therein. C++ built-in variables are documented in cmCPackDocumentVariables.cxx.
* Put CPack DMG and PackageMaker doc in separate filesEric NOULARD2012-02-181-55/+0
|
* Make the load of script documentation more efficient and dynamic.Eric NOULARD2012-02-141-9/+13
| | | | | | | | CPack help will be searched in any CPack*.cmake file located near to CPack.cmake file. The script files is parsed iff the first line begin with ##section. Moreover the documentation section name is specified on the remaining part of the line minus the space immediately following ##section.
* CPack Documentation extraction from CMake script begins to workEric NOULARD2012-01-221-4/+51
| | | | | | | | | | - Enhance extract doc parser. Seems robust now. The legacy module documentation parser works as before ignoring the new markup. - Proof of concept for CPack (generic), CPack RPM and CPack Deb generator for macro and variables. Try cpack --help-command and cpack --help-variables
* Implement simple CMake script comment markup language.Eric NOULARD2012-01-221-0/+12
| | | | | | | | | The language is very simple. It use ##<keyword> special comment which opens a structured documentation block and ##end closes it. This may be used to extract documentation for macro as 'command' and 'variables' such that cpack --help-command and --help-variable does parse builtin modules files (CPack.cmake, CPackComponent.cmake, ...) in order to extract the corresponding doc.
* CPack fix #12449 doc mispelledEric NOULARD2011-09-081-1/+1
| | | | CPACK_INSTALL_DIRECTORIES-->CPACK_INSTALLED_DIRECTORIESœ
* CPack/NSIS: Fix reinstall and multiple install issues when using components.Clinton Stimpson2011-07-291-1/+1
| | | | | | | | | | | | | | Fix NSIS template to more thoroughly use CPACK_PACKAGE_INSTALL_REGISTRY_KEY. This allows different versions of software to have a separate sections in the registry to keep track of things (installed components, and uninstall stuff). Change default of CPACK_PACKAGE_INSTALL_REGISTRY_KEY to follow the value of CPACK_PACKAGE_INSTALL_DIRECTORY so if an installation overwrites another installation, the proper registry entries are more likely to be overwritten. Fix CPack/NSIS generator to not insert code in the NSIS template to skip installation of already installed components. This enables a repair like behavior and also enables installing patch releases on top of an older installation.
* Split CPack.cmake in more manageable partsEric NOULARD2011-04-041-491/+12
| | | | | | Put NSIS, Bundle and Component related MACROs in separate files. This does not implies functional changes, concerning the way CPack is used.