Commit Graph

84 Commits

Author SHA1 Message Date
Domen Vrankar ea916230ef CPack: Avoid crash on invalid CMake generator name (#15308)
Case where CPACK_CMAKE_GENERATOR value is non existent or
or contains multiple words that were not quoted was not
handled and produced a segmentation fault.
2015-01-14 08:38:23 -05:00
Bill Hoffman 2cac483e64 Fix used value warning.
packageFileName no longer has only one value in this function.  Move the
declaration into the loop and remove its initial and unused asignment.
2014-08-05 10:22:36 -04:00
Brad King 3bae343f62 cmCPackGenerator: Avoid crash on undefined CMAKE_MAKE_PROGRAM
Since commit 6557382d (stringapi: Use strings for program
paths, 2014-02-24), cmGlobalGenerator::GenerateBuildCommand
takes the make program path as a std::string.  Fix the lookup
in cmCPackGenerator::InstallProjectViaInstallCMakeProjects to
use GetSafeDefinition for CMAKE_MAKE_PROGRAM to avoid possible
construction of std::string from a NULL.

Reported-by: Richard Wirth <richard@califax.de>
2014-06-25 09:18:27 -04:00
Nils Gladitz 15a8af21e8 Add an "installed file" property scope
Teach set_property and get_property an "INSTALL" property type to be
associated with install-tree file paths.  Make the properties available
to CPack for use during packaging.  Add a "prop_inst" Sphinx domain
object type for documentation of such properties.
2014-05-28 12:28:18 -04:00
Stephen Kelly af8a1643c1 Remove c_str calls when using stream APIs.
Use an ad-hoc clang tool for matching the calls which should be
ported.
2014-03-11 15:03:50 +01:00
Stephen Kelly 21c573f682 Remove some c_str() calls.
Use the clang RemoveCStrCalls tool to automatically migrate the
code. This was only run on linux, so does not have any positive or
negative effect on other platforms.
2014-03-11 15:03:50 +01:00
Ben Boeckel 191f25e2bd stringapi: Prevent a NULL dereference in WiX 2014-03-08 13:05:40 -05:00
Ben Boeckel b3bf31a548 stringapi: Miscellaneous char* parameters 2014-03-08 13:05:37 -05:00
Ben Boeckel 2b17626e9b stringapi: Pass strings as install directories in CPack 2014-03-08 13:05:37 -05:00
Ben Boeckel 84fdc9921c stringapi: Pass configuration names as strings 2014-03-08 13:05:36 -05:00
Ben Boeckel 9f48d3bac2 stringapi: Use strings in CPack generator parameters
Most of these are turned into strings in the body of the method
(multiple times in some cases). Accept strings to simplify the API and
keep string construction down.
2014-03-08 13:05:30 -05:00
Ben Boeckel 3742bb0d32 stringapi: Use strings for variable names
Variable names are always generated by CMake and should never be NULL.
2014-03-08 13:05:28 -05:00
Nils Gladitz 378eb5b712 CPackWIX: Allow Windows Installer property customization 2014-03-01 23:13:35 +01:00
Clinton Stimpson 5730710c86 Use cmsys::[io]fstream instead of cmsys_ios::[io]fstream.
Also use SystemTools::Fopen() instead of fopen().
This is to eventually support utf-8 filenames.
2014-01-07 09:27:44 -05:00
Nils Gladitz 5bc64440e1 CPack: use IsOn instead of IsSet for boolean CPack options
The CPackComponent macros specifically set CPack options to FALSE
which CPack previously interpreted to mean "true".
2013-11-19 23:52:39 +01:00
Brad King 8904d1410b cmGlobalGenerator: Cleanup GenerateBuildCommand API
All cmGlobalGenerator::GenerateBuildCommand call sites that need to
produce a string now generate "cmake --build" commands.  The remaining
call sites immediately pass the result to cmSystemTools::RunSingleCommand.
Avoid the intermediate string and argument parsing by directly producing a
vector of strings.  Also drop the ignoreErrors argument because no call
sites remain that use it.
2013-11-18 08:26:21 -05:00
Brad King d1526f825e Refactor internal resource location APIs and initialization
Rename cmSystemTools::FindExecutableDirectory to FindCMakeResources.
Teach it to compute the locations of cmake, ctest, cpack, ccmake, and
cmake-gui executables, and the location of CMAKE_ROOT.  Provide this
information from static cmSystemTools::Get<resource>() methods.
Refactor code that needs these locations to use the new APIs.

Teach FindCMakeResources to use the OS X system API to lookup the
executable location.  When running from the CMake build tree itself,
leave a file in the tree that FindCMakeResources can use to read the
location of the source tree.  This avoids the need to compile the source
tree location into a binary that may be installed and used without the
source tree.

Teach the QtDialog on OS X to create a "cmake-gui" symlink in the build
tree next to "cmake" and the other tools, as is already done in the
install tree for the application bundle.  This ensures a consistent set
of executables are available in one directory.
2013-11-12 08:23:35 -05:00
Adrien Destugues 1dc61f8142 Haiku: Remove use of B_COMMON_DIRECTORY
The common directory was removed in Haiku. Applications are now
installed in the system directory.

Applied-by: Rolf Eike Beer <eike@sf-mail.de>
2013-10-08 09:55:38 -04:00
Petr Kmoch de8be9ef7d Add projectDir parameter to GenerateBuildCommand
Extend the cmGlobalGenerator::GenerateBuildCommand virtual method
signature with a "projectDir" parameter specifying the top of the
project build tree for which the build command will be generated.
Populate it from call sites in cmGlobalGenerator::Build where a
fully-generated build tree should be available.
2013-04-12 11:35:35 -04:00
Stephen Kelly ddc052052b Always use the auto_ptr from cmsys.
This is for consistency throughout cmake. The cmsys version exists
becaues uses of auto_ptr types as return types does not work with
some implementations in ancient compilers.
2012-11-21 00:56:36 +01:00
Brad King 7cdc95ac36 Merge topic 'CPack-BugFixesSet'
b6f7881 Remove seemingly bogus duplicate CPACK_PACKAGE_FILE_NAME call.
2012-11-13 14:32:09 -05:00
Andreas Mohr b6f7881962 Remove seemingly bogus duplicate CPACK_PACKAGE_FILE_NAME call.
Signed-off-by: Eric NOULARD <eric.noulard@gmail.com>
2012-11-11 21:54:35 +01:00
Andreas Mohr 572d9e1e05 Correct string literal typo (have "(NULL)" like all other cases).
Signed-off-by: Eric NOULARD <eric.noulard@gmail.com>
2012-11-10 15:49:05 +01:00
David Cole 7ff422fb8e Merge topic 'CPack-ArchiveGen-andDESTIR_ON'
ddec053 Make CPACK_SET_DESTDIR work with archive generator + component-based packaging
2012-10-17 16:44:06 -04:00
Eric NOULARD ddec053321 Make CPACK_SET_DESTDIR work with archive generator + component-based packaging
Fix bug #13004. The patch is from Stanislaw Szymczyk.
2012-10-14 18:50:57 +02:00
Eric NOULARD 561b4baead CPACK_XX_ON_ABSOLUTE_INSTALL_DESTINATION is now properly checked for ON/OFF
This fixes bug #0013490
2012-10-14 14:36:14 +02: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
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 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: #0013193 2012-05-09 18:02:13 +02: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 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 #12129
and keeps fully backward compatible behavior.
2012-02-01 23:32:50 +01:00
Daniel Nelson 3cab24a974 CPack Add top level directory in component install for Archive Generators
This patch fixes bug #0012129
Signed-off-by: Eric NOULARD <eric.noulard@gmail.com>
2012-01-13 22:01:53 +01:00
Johan Björk 7b8dcdd173 CPack: Do not recurse through directory symlinks (#12284)
...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
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
Eric NOULARD d3fd945900 CPackRPM Fix #12096: handle absolute install path with component install 2011-04-17 17:12:38 +02:00
Eric NOULARD 9c43824066 Fix KWStyle warnings 2011-04-04 14:59:58 -04:00
Clinton Stimpson 64a5e20999 Combine component packaging methods into an enum.
Also allow generators to override the default packaging method.
Add a ONE_PER_GROUP option so that method can be specified by the user without relying on defaults.
2011-03-31 13:33:03 -04:00
Eric NOULARD 6dfc818394 CPack fix #11930 and simplifies component packaging options 2011-03-23 18:28:05 +01:00
Eric NOULARD 21007f8989 CPack fix CPackDeb crash when CPackDeb.cmake ends with a FATAL_ERROR 2011-03-19 11:12:31 +01:00
Eric NOULARD b813f863e6 CPack fix compile error on VS70 and avoid KWStyle warnings 2011-03-04 22:57:37 +01:00
Eric NOULARD 77333a92c2 CPack more robust way to collect files belonging to a component 2011-03-03 22:43:31 +01:00
Eric NOULARD f2ab270e6f CPack fix KWStyle warning 2011-02-24 00:29:25 +01:00
Eric NOULARD 4deb308e82 CPack Authorize DISPLAY_NAME usage in component package
Second (last) part fix of feature request #11814
2011-02-22 23:49:49 +01:00
Eric NOULARD 494bb8ada7 CPackRPM honors all the different ways of packaging components
RPM cannot easily 'merge' differents directory into a single RPM
with shared prefix. So more flexibility has been added to generic
CPackGenerator in order to let the specific generator chose the
local installation directory for each component.
2011-02-06 21:23:10 +01:00
Brad King ceae8b1062 Merge topic 'CPack-MoreComponentControls'
6d94ea3 CPack  use IsOn when it's better than IsSet
2010-12-16 13:59:45 -05:00
Eric NOULARD 6d94ea3692 CPack use IsOn when it's better than IsSet
This authorize more control because one can set
CPACK_ARCHIVE_COMPONENT_INSTALL to ON globally
and then set it selectively to OFF inside
a CPack project config file.
Sidenote: GetOption ought to be a 'const' method.
2010-12-12 12:55:02 +01:00
Eric NOULARD 17b05e6d7f CPack Honor CPACK_MONOLITHIC_INSTALL at CPack time too 2010-12-12 12:30:42 +01:00