Commit Graph

333 Commits

Author SHA1 Message Date
Fraser Hutchison cfc11f9bff CPack: Fixed incorrect error log for CPACK_NSIS_MENU_LINKS.
This was a pull request: https://github.com/Kitware/CMake/pull/5

Signed-off-by: Eric NOULARD <eric.noulard@gmail.com>
2012-05-28 17:15:29 +02:00
David Cole 3e23da0688 Merge topic 'CPack-activateRPM-DEB-onMacOS'
801ea70 Calm down Borland compiler warning about "always true"
2a34b57 CPack allow RPM and DEB generator to be used on OSX.
2012-05-24 13:38:13 -04:00
David Cole db1857e142 Merge topic 'CPackNSIS-warnDESTDIRandABSOLUTE'
4986d52 Use CPACK_xxx and CMAKE_xxx in a consistent way.
f90223c Fix KWStyle warning
47f0dbd CPack add necessary check to detect/warns/error on ABSOLUTE DESTINATION
6ba055b CPack add easy possibility to warn about CPACK_SET_DESTDIR
2012-05-24 13:38:03 -04:00
Eric NOULARD 801ea70c08 Calm down Borland compiler warning about "always true" 2012-05-21 14:39:18 +02:00
Eric NOULARD 2a34b57938 CPack allow RPM and DEB generator to be used on OSX.
More generally add the check for possible generator "activation" at
runtime depending on a generator specific check.
The dynamic behavior is currently implemented only for MacOS
and should be fully backward compatible for other system.

Inspired-By Tom Hughes <tomtheengineer@gmail.com>
2012-05-20 22:04:32 +02:00
Eric NOULARD 4986d525af Use CPACK_xxx and CMAKE_xxx in a consistent way.
CMAKE_xxx vars are now used in the CMake-generated cmake_install.cmake
script while CPACK_xxx equivalent vars are used from within CPack.
CPack is responsible for getting/forwarding definitions of
CPACK_xxxx var corresponding to CMAKE_xxxx when invoking
CMake-generated install scripts.
As a consequence:
CMAKE_ABSOLUTE_DESTINATION_FILES
CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION
CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION
may be used from outside CPack as well.
e.g.
cmake -DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=1 -P cmake_install.cmake
works as expected.
2012-05-20 17:28:54 +02:00
Eric NOULARD 47f0dbd70b CPack add necessary check to detect/warns/error on ABSOLUTE DESTINATION
The [usually] wrong usage of absolute DESTINATION in INSTALL rules
keeps popping-up on the ML. We shall have some way to:
  1) easily detect it.
  2) forbids this for some CPack generator like NSIS
In fact it should certainly be forbidden for *any* generators
when used on Windows but we may implements that on top of the current
patch.
The patch ask the task to the generated cmake_install.cmake scripts.
Those scripts are a little bit more complicated with that but
iff there are absolute DESTINATION. This cost nothing if relative
DESTINATION are used.
Two new vars are introduced (and documented to handle that):
CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION
and
CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION
2012-05-14 23:29:42 +02:00
Eric NOULARD 6ba055bacd CPack add easy possibility to warn about CPACK_SET_DESTDIR
CPackNSIS will only warn but sooner or later it should error out
2012-05-14 20:26:15 +02:00
Eric NOULARD 3d10f65e39 CPack - preserve timestamp for CPACK_INSTALLED_DIRECTORIES. fixes: 2012-05-09 18:02:13 +02:00
Eric NOULARD abc9b32375 Use fakeroot for control.tar.gz as well 2012-04-17 09:22:07 +02:00
Brad King 0e339f7054 Merge topic 'CPack-fixCPACK_MONOLITHIC_INSTALL-handling'
805c1b2 Handle CPACK_MONOLITHIC_INSTALL in some rare use cases.
2012-03-19 14:42:00 -04:00
Brad King 1df15c68d5 Merge topic 'CPack-fixSTGZpermission-bug13046'
4576f40 CPack STGZ put execute permission on all packages files (component case)
2012-03-19 14:41:56 -04:00
Brad King bfc8d137c5 Merge topic 'fix-12621-xcode43'
0f4dfa6 CPack: Use real path to PackageMaker to find its version file ()
4693cf8 Xcode: Detect new default locations of Xcode 4.3 bits and pieces ()
2012-03-19 14:41:43 -04:00
Eric NOULARD 805c1b21d6 Handle CPACK_MONOLITHIC_INSTALL in some rare use cases.
For example, when CPACK_<GEN>_COMPONENT_INSTALL and
CPACK_MONOLITHIC_INSTALL are both set. Previously, this
combination of variable settings produced an error without
any explanation. Now, in this case CPACK_MONOLITHIC_INSTALL wins
without trouble.
This is useful for when e.g. CPACK_ARCHIVE_COMPONENT_INSTALL is
globally on and one wants MONOLITHIC install for STGZ (but not
other generators). The same behavior may be obtained by re-setting
CPACK_ARCHIVE_COMPONENT_INSTALL to 0 but in any case the
'both set' case should have been handled without error.
2012-03-18 20:21:35 +01:00
Eric NOULARD 4576f40ee0 CPack STGZ put execute permission on all packages files (component case) 2012-03-18 17:52:56 +01:00
David Cole 0f4dfa6960 CPack: Use real path to PackageMaker to find its version file ()
On machines where a usr/bin/packagemaker symlink is found, we were
unable to find the version.plist file relative to the symlink.
Resolve the symlink first, so we can find it relative to the
real PackageMaker.
2012-03-13 14:01:19 -04:00
David Cole 05a76d53c0 CPack: Fix retry logic when calls to hdiutil fail
The long-standing sporadic failures of CPack tests on the Mac dashboards
are caused by an occasional problem running hdiutil. To compensate for
this, a retry loop was added in the code in a previous commit: a9fa71a4
... but the logic for breaking out of the retry loop was flawed, breaking
out of the loop (and not retrying) when the hdiutil command returns an
error instead of when it returns success.

This commit fixes the flawed logic, bumps up the number of retries from
4 to 10, and adds a half-second delay in between retries.

The delay is specifically added in case a virus checker or spotlight indexer
is temporarily causing the hdiutil failure by hanging onto a newly created
file longer than hdiutil expects it to.

As with all sporadically occurring issues, we'll never know if this is
really fixed all the way. But I'll be happy even if we can only get it to
happen just a bit less often.
2012-03-09 11:39:01 -05:00
David Cole 4693cf8492 Xcode: Detect new default locations of Xcode 4.3 bits and pieces ()
Xcode 4.3 installs into "/Applications" by default, from the Mac App Store.

Also, the paths to the available SDKs changed: they are now within the
Xcode.app bundle.

PackageMaker is installed as a separate program, and may be installed
anywhere. It is not installed with Xcode 4.3 by default anymore.
Download the "Auxiliary Tools for Xcode" to get PackageMaker.
Put PackageMaker inside the Xcode.app bundle, in its nested Applications
folder, or put it alongside Xcode in "/Applications" and CMake will find
it.

Update references to "find" paths: add new possible locations for finding
Xcode.app and PackageMaker.app. Prefer the most recent version's locations
first, but keep the old locations as fallback search paths, too.

Thanks to all the contributors who provided and tested out various patches
for fixing this issue. Especially, but by no means limited to:
Francisco Requena Espí, Jamie Kirkpatrick and drfrogsplat.
2012-03-08 22:43:19 -05:00
Eric NOULARD b0cb29bb06 Fix some typos in CPACK_SET_DESTDIR doc 2012-03-06 21:23:11 +01:00
David Cole af87e8abb0 Merge topic 'dragndrop-sla'
5663e43 DragNDrop: Fix problem with relocated files in Xcode 4.3
2012-03-02 11:48:55 -05:00
Clinton Stimpson 5663e436ab DragNDrop: Fix problem with relocated files in Xcode 4.3
Remove dependency on /Developer/Headers/FlatCarbon when creating SLAs for DMG images.
Instead, of adding those .r files on the command line, include the necessary .r files
from the generated .r file.
2012-02-29 08:29:46 -07: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 a6bce55aef Dynamically add documentation section specified in documented script.
Modify CPackDeb and CPackRPM as an example
2012-02-18 22:07:39 +01:00
David Cole 4f9c114dfa Merge topic 'ImproveCPackDoc-reloaded'
d4b77eb Avoid discovering system infos for documentation. Adding some path is enough.
9002f73 Fix non existent std::string::clear on VS6
02ccb32 Create getDocumentedModulesListInDir which may be used in other context.
24fbc28 Add missing section markup for CPackComponent
bafd8a9 Example of builtin variable documentation (i.e. only used in C++ source code).
543f1ad Make the load of script documentation more efficient and dynamic.
cdbd1a9 Fix another compiler warning due to a typo
52c53de Really avoid compiler warning about unused vars
37f90ed Calm down compiler warning about unused var
7c82b7f Fix potential bad memory access, thanks to Eike
62b589b Suppress unused var, beautify code, avoid 1 extra newline.
751713f Update bash completion file in order to handle new CPack doc options.
1629615 CPack Documentation extraction from CMake script begins to work
83e34dd Implement simple CMake script comment markup language.
c6a0169 CPack begin the implementation of --help-command* and --help-variables*
2012-02-14 16:14:56 -05:00
David Cole 4f81c709d1 Merge topic 'CPackNSIS-fixIgnore-INCLUDE_TOPLEVEL'
6a74eb1 CPackNSIS fix  switch from LOG_WARNING to avoid final error.
2012-02-14 16:14:45 -05:00
Eric NOULARD d4b77eba17 Avoid discovering system infos for documentation. Adding some path is enough. 2012-02-14 16:05:24 -05:00
Eric NOULARD 02ccb3291b Create getDocumentedModulesListInDir which may be used in other context.
This should makes it easier to use the same "documented module"
techniques for CTest, CMake or user module.
2012-02-14 16:05:23 -05:00
Eric NOULARD bafd8a9e79 Example of builtin variable documentation (i.e. only used in C++ source code). 2012-02-14 16:05:23 -05: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 52c53deb1b Really avoid compiler warning about unused vars 2012-02-14 16:05:23 -05:00
Eric NOULARD 6a74eb1d36 CPackNSIS fix switch from LOG_WARNING to avoid final error. 2012-02-05 13:13:48 +01:00
Eric NOULARD 5d18851b25 CPackArchive restore default behavior and provide new variable.
CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY should be set by the user
in order to get the toplevel directory included in the archive
whenever a componentized archive is requested. This solves bug 
and keeps fully backward compatible behavior.
2012-02-01 23:32:50 +01:00
Eric NOULARD 37f90ed576 Calm down compiler warning about unused var 2012-01-31 22:45:07 +01: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 c6a0169442 CPack begin the implementation of --help-command* and --help-variables*
This modifications set tries to keep the unified doc for cmake/ctest/cpack
while introducing tool specific documentation separated.
Some documentation sections for CMake do not fit well to CPack.
2012-01-22 11:42:49 +01:00
Daniel Nelson 3cab24a974 CPack Add top level directory in component install for Archive Generators
This patch fixes bug 
Signed-off-by: Eric NOULARD <eric.noulard@gmail.com>
2012-01-13 22:01:53 +01:00
Eric NOULARD d2c9626d5a Document undocumented (but existing) cpack options (fix ) 2012-01-03 16:47:35 +01:00
Nicolas Despres de512644d8 Usage: Print help, version and copyright options in usage information.
There were missing for ctest, cpack and ccmake.
2011-10-23 22:18:14 +02:00
Nicolas Despres a92f14f338 Doxygen: Fix warnings. 2011-10-23 22:18:08 +02:00
Nicolas Despres d3d7e45df2 Remove trailing white-spaces. 2011-10-23 22:15:20 +02:00
David Cole 682a989fdb Merge topic 'CPackDeb-fakeroot'
49da3bd CPackDeb fix  automagically use fakeroot for DEB if fakeroot is found
2011-09-21 17:29:16 -04:00
Johan Björk 7b8dcdd173 CPack: Do not recurse through directory symlinks ()
...when building CPack archive-based packages (.tar.gz and similar)

Rather, put the symlinks-to-directories into the archive as files,
and expect/trust that the things the symlinks point to are also in
the archive.
2011-09-06 14:04:37 -04:00
Eric NOULARD 49da3bdb2d CPackDeb fix automagically use fakeroot for DEB if fakeroot is found 2011-09-05 22:43:45 +02:00
David Cole ab24bdeecc Merge topic 'cpack-nsis-multi-installs'
e6d2bcf CPack/NSIS: Fix reinstall and multiple install issues when using components.
2011-08-02 15:10:47 -04: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
Johan Björk 856a9e499f RunSingleCommand: Replace verbose boolean with enum
No behaviour change, this prepares for adding a flag to skip the merging
of output streams.
2011-07-28 10:42:03 -04:00
Wesley Turner 0fb388c733 Ensure executable files have executable permissions.
Fix the OSX X11 CPack generator to make sure the installer
that it generates contains executable files.
2011-05-16 18:15:32 -04:00
Eric NOULARD d3fd945900 CPackRPM Fix : handle absolute install path with component install 2011-04-17 17:12:38 +02:00
Martin Konrad b22fcfb0c5 CPackDeb: Handle dirs for CONTROL_EXTRA correctly when packaging components
Copy the files specified in CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA to the right
directory when packaging components. This fixes .
Signed-off-by: Eric NOULARD <eric.noulard@gmail.com>
2011-04-09 09:30:19 +02:00