Commit Graph

118 Commits

Author SHA1 Message Date
Brad King 2123b432d9 ENH: Teach file(REMOVE) how to use relative paths
This teaches the command to interpret relative paths with respect to the
location of the invoking CMakeLists.txt file.  The convention is already
used by most commands and won't change the behavior in script mode.
2009-03-06 09:14:57 -05:00
Brad King f074d9f571 ENH: Add undocumented file(DIFFERENT) command
This new command will be used by generated installation scripts to
determine whether an already-installed export file has changed.
2009-01-07 14:16:35 -05:00
Brad King 86aeefc7c9 COMP: Fix installation of cmake-gui by CMake 2.4
When CMake 2.4 generates the build tree for CMake itself it asks the
built CMake to install itself using the rules that 2.4 generated.  Since
the install rules use undocumented commands that are not compatible from
2.4 to 2.6 we need a special case to avoid failure.  This sets a special
indicator variable in the install rules that enables a compatibility
hack to support the old install rule format.
2009-01-05 11:05:57 -05:00
Brad King e2fa035c70 ENH: Refactor internal file(INSTALL) arg parsing
The internal file(INSTALL) command argument parsing used several
booleans with at most one set to true at a time to track argument
parsing state.  This refactors it to use one enumeration.
2009-01-05 11:03:41 -05:00
David Cole 0fafdb7eb8 BUG: Do not copy permissions of files when making the copy in an install rule. If the source file was read-only, this prevents the subsequent set of the destination file's modification time, making the copied file always different in time-stamp than the original and always installing a new file with a new time stamp (but the same content) causing unnecessary downstream incremental rebuilds. As part of this fix, add an optional copyPermissions parameter to the SystemTools routines CopyFileIfDifferent, CopyFileAlways, CopyAFile and CopyADirectory. The copyPermissions parameter defaults to true to preserve the behavior of these routines for existing callers. 2008-12-18 10:43:24 -05:00
David Cole bd1935dcd1 ENH: Improve FILE GLOB_RECURSE handling of symlinks with a new CMake policy. CMP0009 establishes NEW default behavior of not recursing through symlinks. OLD default behavior or explicit FOLLOW_SYMLINKS argument to FILE GLOB_RECURSE will still recurse through symlinks. 2008-09-11 14:34:04 -04:00
David Cole ccf603f0c2 ENH: Add the RECURSE_SYMLINKS_OFF flag to the FILE GLOB_RECURSE command. Exposes the recently added kwsys capability that prevents recursing through symlinks to CMake scripts. 2008-08-23 13:33:13 -04:00
Brad King 8063dd293e ENH: Inform user when RPATH or RUNPATH is removed 2008-08-14 09:53:26 -04:00
Brad King 757875df91 ENH: Inform user when RPATH is set during installation.
- Original patch from Alex.
  - Modified to print only when RPATH is actually set.
2008-05-27 10:22:03 -04:00
Brad King b9ede3c86d BUG: Fix previous change to file(STRINGS) command.
- Previous change added form-feed as a string terminator.
  - Instead it should just be recognized as a valid string character.
2008-05-17 11:42:11 -04:00
Brad King 0c6ba12efd ENH: Teach Fortran compiler identification about the Portland Group compiler (PGI). 2008-05-16 17:50:24 -04:00
Brad King 1381aab4b7 BUG: Remove check for files written by file(WRITE) being loaded.
- CMake 1.8 and below did not do the check but could get in
    infinite loops due to the local generate step.
  - CMake 2.0 added the check but failed to perform it in directories
    with no targets (see bug #678).
  - CMake 2.2 removed the local generate which fixed the problem but
    did not remove the check.
  - Between CMake 2.4 and 2.6.0rc6 the check was fixed to work even
    when no targets appear in a directory (see bug #6923).
  - Bottom line: the check is no longer needed.
2008-04-30 13:42:40 -04:00
Brad King fdc3bfff7c ENH: Improve RPATH behavior during installation.
- If new RPATH is empty then remove the entry completely
  - Preserve file modification time so installation is not repeated
  - If installed file already exists remove it if its RPATH
    does not match that expected
2008-04-14 15:02:44 -04:00
Brad King c408760a8a ENH: Improve error message when installation file(CHRPATH) cannot change the RPATH. 2008-04-07 10:55:52 -04:00
Bill Hoffman 45ce11a075 ENH: install the mac application bundle into /Applications directly with no enclosing folder 2008-04-04 16:02:50 -04:00
Sebastien Barre cddb1346b7 BUG: the directory the FILE DOWNLOAD command is writing to might not exist. 2008-03-13 09:28:26 -04:00
Brad King d732de4a8a ENH: Cleanup builtin chrpath support
- Move computation of extended build-tree rpath
    to cmComputeLinkInformation
  - Only enable the extended build-tree rpath if
    the target will be installed
  - Generalize the interface of file(CHRPATH)
  - When changing the rpath on installation only
    replace the part generated by CMake because
    the native tools (ex SunCC on Linux) might have
    added their own part to the rpath
2008-03-02 14:35:23 -05:00
Brad King 34c76d4304 ENH: Use builtin chrpath instead of relinking ELF targets
- Add cmSystemTools::ChangeRPath method
  - Add undocumented file(CHRPATH) command
  - When installing use file(CHRPATH) to change the rpath
    instead of relinking
  - Remove CMAKE_CHRPATH lookup from CMakeFindBinUtils
  - Remove CMAKE_USE_CHRPATH option since this should
    always work
2008-03-01 12:51:07 -05:00
Bill Hoffman 001d7fa348 ENH: add more information to message 2008-02-18 15:42:55 -05:00
Bill Hoffman 0bfad2946d ENH: make sure files are binary for download and make status a pair of value string 2008-02-07 13:26:16 -05:00
Bill Hoffman a752fc5e85 ENH: remove debug print stuff 2008-02-06 09:46:58 -05:00
Bill Hoffman 7dfcc3fc12 ENH: add DOWNLOAD option to FILE command 2008-02-06 09:35:02 -05:00
Ken Martin 0e69d38004 ENH: add return and break support to cmake, also change basic command invocation signature to be able to return extra informaiton via the cmExecutionStatus class 2008-01-23 10:28:26 -05:00
Alexander Neundorf 9f2790d3e7 BUG: with cmake 2.4 INSTALL_FILES() with no files was accepted by cmake,
with cmake cvs without this patch an invalid cmake_install.cmake script was
generated in this case, it failed with an error if no files were given. So
just do nothing if no files are listed to make it compatible.

http://lists.kde.org/?l=kde-commits&m=119965185114478&w=2

Alex
2008-01-07 14:52:45 -05:00
Brad King 4e514a5e00 BUG: File installation should overwrite the destination if the file times differ at all rather than only if the source file is newer. Users expect installation to overwrite destination files. This addresses the re-opening of bug#3349. 2008-01-04 14:22:57 -05:00
Brad King c61a3b6fe9 STYLE: Fix line-too-long. 2008-01-03 09:40:38 -05:00
Alexander Neundorf b6918bd9a4 COMP: fix build on Windows with gcc, patch from Maik Beckmann
Alex
2008-01-03 04:19:30 -05:00
Alexander Neundorf 7b54af713d ENH: add the keywords OFFSET and HEX to the FILE() command, using OFFSET an
offset can be specified where the reading starts, and using HEX the data can
be converted into a hex string, so binary data can be compared with text
functions
-add docs for LIMIT, OFFSET and HEX

Alex
2008-01-02 16:46:38 -05:00
Brad King 60bf0531b0 ENH: Added FILES_MATCHING option to INSTALL(DIRECTORY). This will help install a tree of header files while ignoring non-headers. 2008-01-02 15:17:56 -05:00
Brad King a2b2742543 ENH: During file installation treat the source file as a dependency of the installed file. Install the file only if the destination is older than the source. Set the file times on the installed file to match those of the source file. This should greatly improve the speed of repeated installations because it removes the comparison of file contents. This addresses bug#3349. 2007-10-05 09:46:28 -04:00
Alexander Neundorf 55303d6dd2 STYLE: fix line lengths
Alex
2007-07-20 08:36:16 -04:00
Brad King e25dd3b903 COMP: Remove unused argument. 2007-07-02 16:04:15 -04:00
Brad King 7f29f8966d ENH: Further cleanup of installation script generation. The per-component and per-configuration testing is now done in cmake code instead of in the FILE(INSTALL) command. The generation of the cmake code to do these tests is centralized in cmInstallGenerator. Old-style shared library versioning and component/config support code has been removed from FILE(INSTALL). This commit is surrounded by the tags CMake-InstallGeneratorCleanup2-pre and CMake-InstallGeneratorCleanup2-post. 2007-07-02 14:56:57 -04:00
Brad King c0d3ab2d2b BUG: Need to compute the correct versioned name for executables on cygwin. This addresses bug#5238. 2007-06-27 16:10:39 -04:00
Alexander Neundorf b956fc2406 STYLE: remove out commented code
Alex
2007-06-07 13:51:17 -04:00
Alexander Neundorf 55f11b348b ENH: add option to FILE(STRINGS NO_HEX_CONVERSION) to disable automatic
conversion of hex and srec files to binary.
Without this automatic conversion, everywhere where a compiled file is parsed for strings the
a file(HEX2BIN somefile binfile) command has to be added otherwise it will
not work for these compilers. I tried this with DetermineCompiler and
CheckTypeSize and nobody will do this except the users who work with such
compilers. For them it will break if they don't add this conversion command
in all these places.
If FILE(STRINGS) is used with a text file, it
will in most cases still work as expected, since it will only convert hex
and srec files. If a user actually wants to get text out of hex files, he
knows what he's doing and will see the hint in the documentation.

Anyway, it should work without having to create a temporary file, will work
on this later.

Alex
2007-05-25 16:46:50 -04:00
Alexander Neundorf f4eb541880 ENH: make the compiler id detection work, even if the output file name of
the compiler is completely unknown and even if it produces intel hex or
motorola s-record files, with test

Alex
2007-05-25 15:22:22 -04:00
Brad King 4259c7c1e4 COMP: Fix for borland now that components list check is const. 2007-05-19 09:55:18 -04:00
Alexander Neundorf aee311a89d STYLE: fix line lengths
Alex
2007-05-18 08:49:06 -04:00
Alexander Neundorf 61d3444f93 ENH: merge CMake-CrossCompileBasic to HEAD
-add a RESULT_VARIABLE to INCLUDE()
-add CMAKE_TOOLCHAIN_FILE for specifiying your (potentially crosscompiling) toolchain
-have TRY_RUN() complain if you try to use it in crosscompiling mode (which were compiled but cannot run on this system)
-use CMAKE_EXECUTABLE_SUFFIX in TRY_RUN(), probably TRY_RUN won't be able to
run the executables if they have a different suffix because they are
probably crosscompiled, but nevertheless it should be able to find them
-make several cmake variables presettable by the user: CMAKE_C/CXX_COMPILER, CMAKE_C/CXX_OUTPUT_EXTENSION, CMAKE_SYSTEM_NAME, CMAKE_SYSTEM_INFO_FILE
-support prefix for GNU toolchains (arm-elf-gcc, arm-elf-ar, arm-elf-strip etc.)
-move ranlib on OSX from the file command to a command in executed in cmake_install.cmake
-add support for stripping during install in cmake_install.cmake
-split out cl.cmake from Windows-cl.cmake, first (very incomplete) step to support MS crosscompiling tools
-remove stdio.h from the simple C program which checks if the compiler works, since this may not exist for some embedded platforms
-create a new CMakeFindBinUtils.cmake which collects the search fro ar, ranlib, strip, ld, link, install_name_tool and other tools like these
-add support for CMAKE_FIND_ROOT_PATH for all FIND_XXX commands, which is a
list of directories which will be prepended to all search directories, right
now as a cmake variable, turning it into a global cmake property may need
some more work
-remove cmTestTestHandler::TryExecutable(), it's unused
-split cmFileCommand::HandleInstall() into slightly smaller functions

Alex
2007-05-17 13:20:44 -04:00
Brad King 6697979aaf COMP: Avoid warning. 2007-04-26 09:56:04 -04:00
Brad King 0fb689973e ENH: Added FILE(STRINGS) command. 2007-04-25 17:22:07 -04:00
Brad King a017333d9a ENH: Added option CMAKE_INSTALL_SO_NO_EXE on linux to choose whether the default permissions for shared libraries include the executable bit. This is necessary to support the conflicting policies of Debian and Fedora. These changes address bug#4805. 2007-04-10 11:22:15 -04:00
Brad King e105c7fedc BUG: Preserve symlinks during installation. This addresses bug#4384. 2007-03-12 14:15:25 -04:00
Ken Martin fdbe20cf8b COMP: fix warnings 2007-03-02 10:48:58 -05:00
Ken Martin d223fc64ad COMP: fix a compiel warning 2007-03-01 16:23:06 -05:00
Ken Martin f8c982cf78 ENH: added LIMIT on file read 2007-03-01 15:53:09 -05:00
Brad King 27a67fb72f ENH: Add support to INSTALL(DIRECTORY) to install an empty directory. This addresses bug#3572. 2006-08-29 15:04:29 -04:00
Brad King 2b602ea738 COMP: Need to use cmsys_stl when in CMake code, not kwsys_stl. 2006-08-27 13:15:39 -04:00
Brad King b4e1de7886 BUG: Avoid putting double-slashes in fromFile during installation. Also added regex debugging copy of the expression in string form. 2006-08-25 12:11:21 -04:00