My patches to CMake
Go to file
Brad King 5f926016a9 Fix rule hash persistence file generation
We store custom command rule hashes in CMakeFiles/CMakeRuleHashes.txt
persistently across CMake runs.  When the rule hash changes we delete
the custom command output file and write a new hash into the persistence
file.

This functionality was first added by the commit 'Introduce "rule
hashes" to help rebuild files when rules change.' (2008-06-02).
However, the implementation in cmGlobalGenerator::CheckRuleHashes kept
the file open for read when attempting to rewrite a new file.  On
Windows filesystems this prevented the new version of the file from
being written!  This caused the first set of rule hashes to be used
forever within a build tree, meaning that all custom commands whose
rules changed would be rebuilt every time CMake regenerated the build
tree.

In this commit we address the problem by splitting the read and write
operations into separate methods.  This ensures that the input stream is
closed before the output stream opens the file.
2010-02-11 18:14:34 -05:00
Docs Merge in changes to CMake-2-8 RC 2 2009-10-01 17:21:28 -04:00
Example ENH: updte to lower case and using ADD_SUBDIRECTORY 2005-06-27 12:44:11 -04:00
Modules CMake 2.8.1-rc2 2010-02-11 10:50:43 -05:00
Source Fix rule hash persistence file generation 2010-02-11 18:14:34 -05:00
Templates CMake 2.8.1-rc1 2010-01-28 16:48:20 -05:00
Tests CMake 2.8.1-rc2 2010-02-11 10:50:43 -05:00
Utilities CMake 2.8.1-rc1 2010-01-28 16:48:20 -05:00
.gitattributes *** empty log message *** 2000-08-29 10:56:51 -04:00
CMakeCPack.cmake Merge in changes to CMake-2-8 RC 2 2009-10-01 17:21:28 -04:00
CMakeCPackOptions.cmake.in Use cmake-gui.exe for add/remove icon. 2009-09-25 11:47:48 -04:00
CMakeGraphVizOptions.cmake ENH: Add a way to overwrite some preferences and ignore certain targets 2006-03-07 15:31:05 -05:00
CMakeLists.txt CMake 2.8.1-rc2 2010-02-11 10:50:43 -05:00
CMakeLogo.gif ENH: fancier logo 2007-11-26 13:21:57 -05:00
CTestConfig.cmake CMake 2.8.1-rc2 2010-02-11 10:50:43 -05:00
CTestCustom.cmake.in RC 4 merge 2009-10-28 12:17:18 -04:00
CTestCustom.ctest.in ENH: Create CTestCustom.cmake instead of CTestCustom.ctest. Create the old file to include the new one for compatibility. This should prevent the long delays of CTest traversing the whole tree looking for CTestCustom.ctest files. 2007-08-31 14:51:09 -04:00
ChangeLog.manual CMake 2.8.1-rc2 2010-02-11 10:50:43 -05:00
ChangeLog.txt Add new changelog to get ready for release 2009-09-23 16:45:29 -04:00
CompileFlags.cmake RC 4 merge 2009-10-28 12:17:18 -04:00
Copyright.txt Merge in changes to CMake-2-8 RC 2 2009-10-01 17:21:28 -04:00
DartConfig.cmake Merge in changes to CMake-2-8 RC 2 2009-10-01 17:21:28 -04:00
DartLocal.conf.in ENH: remove superior dean i, no longer uses borland 2007-12-03 20:44:43 -05:00
Readme.txt Merge in changes to CMake-2-8 RC 2 2009-10-01 17:21:28 -04:00
bootstrap CMake 2.8.0-rc7 2009-11-11 13:34:21 -05:00
cmake.1 ENH: Initial checkin of unix manpage. 2002-08-08 11:58:30 -04:00
cmake_uninstall.cmake.in BUG: Patch from bug#4312 to make uninstall work with DESTDIR. 2007-01-22 10:39:16 -05:00
configure Merge in changes to CMake-2-8 RC 2 2009-10-01 17:21:28 -04:00
doxygen.config BUG: fix for bug# 3921 INPUT wrong 2006-10-13 11:26:59 -04:00

Readme.txt

This is CMake, the cross-platform, open-source make system.
CMake is distributed under the BSD License, see Copyright.txt.
For documentation see the Docs/ directory once you have built CMake
or visit http://www.cmake.org.


Building CMake
==============


Supported Platforms
-------------------

MS Windows, Mac OS X, Linux, FreeBSD, Solaris, HP-UX, IRIX, BeOS, QNX

Other UNIX-like operating systems may work too out of the box, if not
it shouldn't be a major problem to port CMake to this platform. Contact the
CMake mailing list in this case: http://www.cmake.org/mailman/listinfo/cmake


If you don't have any previous version of CMake already installed
--------------------------------------------------------------

* UNIX/Mac OSX/MinGW/MSYS/Cygwin:

You need to have a compiler and a make installed.
Run the bootstrap script you find the in the source directory of CMake.
You can use the --help option to see the supported options.
You may want to use the --prefix=<install_prefix> option to specify a custom
installation directory for CMake. You can run the bootstrap script from
within the CMake source directory or any other build directory of your
choice. Once this has finished successfully, run make and make install.
So basically it's the same as you may be used to from autotools-based
projects:

$ ./bootstrap; make; make install


* Other Windows:

You need to download and install a binary release of CMake in order to build
CMake.  You can get these releases from
http://www.cmake.org/HTML/Download.html .  Then proceed with the instructions
below.


You already have a version of CMake installed
---------------------------------------------

You can build CMake as any other project with a CMake-based build system:
run the installed CMake on the sources of this CMake with your preferred
options and generators. Then build it and install it.
For instructions how to do this, see http://www.cmake.org/HTML/RunningCMake.html