Commit Graph

88 Commits

Author SHA1 Message Date
Brad King ecaee7caca CPack: Fix NSIS default 64-bit Windows install directory (#14211)
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>
2015-02-04 15:11:10 -05:00
Brad King 58f3d96d17 CPack: Sort packaging options lexicographically
This will allow new options to be added more cleanly.
2014-07-31 10:24:59 -04:00
Brad King efb45007f9 CPack: Expand mark_as_advanced arguments to one-per-line
This will allow new values to be added without editing existing lines.
2014-07-31 10:24:03 -04:00
Brad King 5cabc2cd43 CPack: Mark CPACK_BINARY_IFW option as advanced
All similar options are already marked.

Suggested-by: Daniel Pfeifer <daniel@pfeifer-mail.de>
2014-07-30 16:00:06 -04:00
Daniel Pfeifer 9d93e099e6 CPack: Add lzma-compressed package options
Add options to package binary and source tarballs:

 CPACK_BINARY_7Z
 CPACK_BINARY_TXZ
 CPACK_SOURCE_7Z
 CPACK_SOURCE_TXZ
2014-07-30 15:56:34 -04:00
Konstantin Podsvirov 44850a267d CPack: Add an "IFW" generator for Qt Framework Installer
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>
2014-07-28 10:24:03 -04:00
Timo Rothenpieler b78d74de64 CPackWiX: Add support for CPACK_CREATE_DESKTOP_LINKS 2014-02-08 19:19:33 +01:00
Daniele E. Domenichelli 15610bb5b1 Drop use of configure_file IMMEDIATE option
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.
2013-11-13 10:12:17 -05:00
Brad King 177f5e51d2 Merge topic 'osx-no-PackageMaker'
7947981 CPack: Disable OS X PackageMaker by default (#13662)
2013-11-05 11:42:10 -05:00
Brad King 7947981c2b CPack: Disable OS X PackageMaker by default (#13662)
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.
2013-11-01 15:41:16 -04:00
Clinton Stimpson 53d6ebb360 cpack: For DragNDrop generator, add sysroot option when calling Rez. 2013-11-01 05:31:07 -06:00
Clinton Stimpson 193029c4aa cpack: For DragNDrop generator, add sysroot option when calling Rez.
Also adding overwrite option (-ov) in case multiple temporary
dmg files are being created.

Fixes bug #14536.
2013-10-31 20:25:12 -06:00
Kitware Robot a77e308693 CPack: Replace #<type> markup with reStructuredText equivalent
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.
2013-10-16 09:22:39 -04:00
Kitware Robot f051814ed0 Convert builtin help to reStructuredText source files
Run the convert-help.bash script to convert documentation:

 ./convert-help.bash "/path/to/CMake-build/bin"

Then remove it.
2013-10-15 14:12:03 -04:00
Clinton Stimpson 3fde03cd8c Improve documentation for CPACK_PACKAGE_INSTALL_REGISTRY_KEY.
Fixes issue 13787.
2013-05-13 22:22:45 -06:00
Nils Gladitz 85baac1503 CPack: Add a WiX Generator (#11575)
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
2012-12-03 11:00:31 -05:00
Kitware Robot 9db3116226 Remove CMake-language block-end command arguments
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
2012-08-13 14:19:16 -04:00
Kitware Robot 77543bde41 Convert CMake-language commands to lower case
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
2012-08-13 14:19:16 -04:00
Kitware Robot 7bbaa4283d Remove trailing whitespace from most CMake and C/C++ code
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/ \+$//'
2012-08-13 14:18:39 -04:00
Eric NOULARD 05a8630ee6 Do not provide defaul value for CPACK_PACKAGE_DIRECTORY if found in config.
This fixes bug #0012906.
2012-07-04 23:08:32 +02:00
David Cole 419f561b2f Merge topic 'fix-9946-uninstall-before-install'
fe58b67 Added CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL
2012-04-25 14:06:29 -04:00
Patrick Gansterer fe58b67e24 Added CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL
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.
2012-04-22 11:30:34 -04:00
Modestas Vainius 94b24ad88d Fix CPack RPM man page typo detected by lintian.
Signed-off-by: Eric NOULARD <eric.noulard@gmail.com>
2012-04-20 20:41:18 +02:00
Eric NOULARD d4719a8d36 Add some missing CPACK_NSIS_xxx doc and move some to common CPack section. 2012-03-06 23:23:08 +01:00
Eric NOULARD 94a269304e Review and update CPack variable documentation.
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.
2012-02-25 23:07:07 +01:00
Eric NOULARD dee0a38648 Put CPack DMG and PackageMaker doc in separate files 2012-02-18 22:33:10 +01:00
Eric NOULARD 543f1adfa4 Make the load of script documentation more efficient and dynamic.
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.
2012-02-14 16:05:23 -05:00
Eric NOULARD 1629615a10 CPack Documentation extraction from CMake script begins to work
- 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
2012-01-22 13:31:24 +01:00
Eric NOULARD 83e34dd9e6 Implement simple CMake script comment markup language.
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.
2012-01-22 11:44:05 +01:00
Eric NOULARD 59204e1126 CPack fix #12449 doc mispelled
CPACK_INSTALL_DIRECTORIES-->CPACK_INSTALLED_DIRECTORIESœ
2011-09-08 22:00:34 +02:00
Clinton Stimpson e6d2bcfde2 CPack/NSIS: Fix reinstall and multiple install issues when using components.
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.
2011-07-29 12:23:22 -06:00
Eric NOULARD 4bb79402e8 Split CPack.cmake in more manageable parts
Put NSIS, Bundle and Component related MACROs in separate files.
This does not implies functional changes, concerning the way
CPack is used.
2011-04-04 20:18:27 +02:00
Brad King b524f864ca Merge topic 'fix-9148-cpack-nsis-installer-root'
5a9e8e7 CPack: Add CPACK_NSIS_INSTALL_ROOT variable (#9148)
2011-01-11 15:48:34 -05:00
David Cole 5a9e8e701e CPack: Add CPACK_NSIS_INSTALL_ROOT variable (#9148)
Control the root directory of the default directory presented to
the end user of an NSIS installer by a CPack variable.

Previously, the value used in the NSIS script was $PROGRAMFILES,
which is equivalent to the "ProgramFiles" environment variable.
That default value is still the same, but now a project may
override the value by setting this new variable.
2011-01-11 15:42:42 -05:00
Mike McQuaid bee514c361 Add CPack NSIS MUI_FINISHPAGE_RUN support (#11144)
MUI_FINISHPAGE_RUN is frequently used with NSIS and provides a checkbox
on the finish page of an installer which specifies whether the specified
executable should be run when the installer exits. This commit adds support
for this setting in CPack.
2011-01-06 16:21:36 -05:00
Mike McQuaid 702c8f8ba7 Add CPACK_NSIS_EXECUTABLES_DIRECTORY (#7828)
NSIS installers default to assuming the executables exist in a
directory named "bin" under the installation directory. As this
isn't usual for Windows programs, the addition of this variable
allows the customization of this directory and links still to be
created correctly.
2011-01-06 16:21:23 -05:00
David Cole cf4a50bcdb Add documentation for CPACK_PROJECT_CONFIG_FILE. 2010-08-11 11:40:11 -04:00
Todd Gamblin 2cde67a781 Modules: Fix spelling 'To distributed' -> 'To distribute' 2010-08-09 08:48:31 -04:00
Bill Hoffman a9ac761938 Add .git .bzr and .hg to the list of default CPack ignore directories. 2010-03-08 10:46:27 -05:00
David Cole d9f78eca72 Fix issue #10055 - add documentation for the CPack Mac OSX only Bundle generator.
Thanks to Tim Shead for the patch.
2009-12-15 17:36:56 -05:00
David Cole 8a87458954 Fix issue #9782 - add documentation for variables used by CPack DragNDrop generators.
Thanks to Michael Wild for the patch.
2009-12-15 13:35:26 -05:00
Bill Hoffman 6e8aa6cb52 Fix regression with CPACK_NSIS_PACKAGE_NAME, if the project is setting the CPACK_NSIS_DISPLAY_NAME then use that as the default value and not the CPACK_PACKAGE_INSTALL_DIRECTORY, also make sure it escapes \ correctly. 2009-11-12 17:58:37 -05:00
Brad King 3a666595c9 Convert CMake non-find modules to BSD License
This adds copyright/license notification blocks CMake's non-find
modules.  Most of the modules had no notices at all.  Some had notices
referring to the BSD license already.  This commit normalizes existing
notices and adds missing notices.
2009-09-28 11:46:51 -04:00
Ken Martin f686dbecb6 some white space fixes for the book 2009-09-03 15:29:29 -04:00
David Cole 85733c17c5 BUG: Re-fix issue #8682. Use new variable CPACK_NSIS_PACKAGE_NAME in appropriate places rather than CPACK_NSIS_DISPLAY_NAME. CPACK_NSIS_DISPLAY_NAME is the Add/Remove control panel's description string for the installed package. Using it as the "Name" of the NSIS installer package made the CMake installer itself use really long strings in the installer GUI. This fix still allows for the original intent of the first fix for #8682 -- the ability to separate the installer name from the default install directory, but it uses a new/different variable to achieve the separation. 2009-07-16 11:48:30 -04:00
David Cole 6d242ca2dc STYLE: Use $ style variable dereference instead of @ style. 2009-03-05 10:08:03 -05:00
David Cole c58f2a5830 ENH: Turn off CPACK_BINARY_TBZ2 and CPACK_BINARY_ZIP by default. Strictly speaking, this changes behavior from cpack 2.6, but now that cpack returns a non-zero exit code when it encounters an error, and it is an error to try to use a generator that is not available... It makes sense to turn these off by default since not everybody has these generators installed. It is easy for a project to turn these options back on if they need to: simply set(CPACK_BINARY_TBZ2 ON) or set(CPACK_BINARY_ZIP ON) before include(CPack) in your CMakeLists.txt... 2009-01-23 13:36:22 -05:00
David Cole 3a4f76949a BUG: Fix issue #8402. Add a drag and drop bundle generator to the Mac build of CPack. Add a test of it in the CPackComponents test. Thanks to Clinton Stimpson for the patch. 2009-01-22 12:12:44 -05:00
David Cole 71f61636b6 ENH: One more patch from Doug Gregor including PackageMaker functionality for componentized-for-the-end-user and download-some-bit-on-demand installers. 2008-07-09 13:38:56 -04:00
David Cole 83ec8c3593 ENH: Further refinement of the CPack components functionality from Doug Gregor.
Details:
==========

 - New cpack_add_component, cpack_add_component_group, and
cpack_add_install_type "commands" defined as macros in the CPack
module.
 - Documentation for all of the variables and commands in the CPack module.
 - Added get_cmake_property(... COMPONENTS) to CMake to ask for the
names of all components. Used in the CPack module to automatically
build component-based installers. (Set CPACK_MONOLITHIC_INSTALL to
turn off component-based installation).
 - A group can declare its PARENT_GROUP, to build an arbitrary
hierarchy of groups.
 - New CPack command cpack_configure_downloads, which creates an
installer that downloads only the selected components on-the-fly.
Those components marked DOWNLOADED will be separate packages
downloaded on-the-fly (or, all packages can be marked as such with the
ALL option to cpack_configure_downloads). Individual components are
compressed with ZIP at installer-creation time and
downloaded/uncompressed by the installer as needed. This feature is
only available on Windows with NSIS at the moment.
 - NSIS installers can install themselves and enable the "Change"
button in Add/Remove programs, allowing users to go back and install
or remove components. This can be disabled through
cpack_configure_downloads, because it's only really useful is most of
the application's functionality is in downloaded components.
 - Bug fix: automatically install everything whose COMPONENT was not
specified (it's a hidden, required group)
 - Bug fix: fixed removal of components when re-running the NSIS
installer and unchecking components
 - Bug fix: NSIS installers now only install/remove the minimal
number of files when re-run to update the installation (or by clicking
"Change" in Add/Remove programs)
2008-07-08 11:52:25 -04:00