My patches to CMake
Go to file
Brad King e48796b26b KWSys: Fix SystemTools environment memory handling (#13156)
The SystemTools::PutEnv function tries to provide the "putenv" API
without leaking memory.  However, the kwsysDeletingCharVector singleton
frees memory that may still be referenced by the environment table,
having been placed there by putenv.  If any static destruction or
processing by an external tool happens after the singleton is destroyed
and accesses the environment it will read invalid memory.

Replace use of putenv with setenv/unsetenv when available.  The latter
manage internal copies of the values passed instead of referencing the
original memory.  When setenv/unsetenv are not available use putenv with
a singleton that removes its values from the environment before freeing
their memory.  This requires an "unputenv" implementation.  On at least
some platforms it must be written in terms of "putenv" because other
APIs are not available and direct modification of the "environ" global
is not safe (e.g. on Windows there is interaction with "wenviron").
Fortunately either putenv("A=") or putenv("A") will remove "A" from the
environment on these platforms.  On other platforms fall back to direct
manipulation of "environ".

Also add UnPutEnv to the API and add a test for the behavior of both.
2012-04-27 08:13:52 -04:00
Docs cmake-mode.el: Make indentation case-insensitive (#12995) 2012-02-24 13:22:22 -05:00
Example ENH: updte to lower case and using ADD_SUBDIRECTORY 2005-06-27 12:44:11 -04:00
Modules Merge topic 'check_include_files_output' 2012-04-10 15:19:51 -04:00
Source KWSys: Fix SystemTools environment memory handling (#13156) 2012-04-27 08:13:52 -04:00
Templates Update CPackConfig template. 2012-02-25 23:07:07 +01:00
Tests Merge topic 'test-generated-def' 2012-04-03 15:59:37 -04:00
Utilities Merge branch 'developer-setup' 2012-04-19 09:07:55 -04:00
.gitattributes Add CMAKE_GNUtoMS option to convert GNU .dll.a to MS .lib 2011-12-05 18:13:49 -05:00
.hooks-config.bash Add pre-commit|commit-msg|prepare-commit-msg hook placeholders 2011-10-24 10:18:36 -04:00
CMakeCPack.cmake Add CPACK_NSIS_INSTALL_ROOT for CMake's own installer (#9148) 2011-01-13 16:57:50 -05:00
CMakeCPackOptions.cmake.in Add CPACK_NSIS_INSTALL_ROOT for CMake's own installer (#9148) 2011-01-13 16:57:50 -05: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 Refactor CMake version handling 2012-04-20 11:25:55 -04:00
CMakeLogo.gif ENH: fancier logo 2007-11-26 13:21:57 -05:00
CTestConfig.cmake Change to UTC for dashboard time. 2010-03-15 14:25:32 -04:00
CTestCustom.cmake.in Suppress warnings occurring on the dashboards using the PGI compiler. 2012-03-07 15:06:42 -05: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.8 2012-04-18 12:03:39 -04:00
ChangeLog.txt Add new changelog to get ready for release 2009-09-23 16:45:29 -04:00
CompileFlags.cmake Re-disable MSVC CRT deprecation warnings 2009-10-28 08:42:20 -04:00
Copyright.txt Update main Copyright.txt year range for 2011 2011-11-10 07:56:31 -05:00
DartConfig.cmake Convert CMake to OSI-approved BSD License 2009-09-28 11:43: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 Convert CMake to OSI-approved BSD License 2009-09-28 11:43:28 -04:00
bootstrap KWSys: Fix SystemTools environment memory handling (#13156) 2012-04-27 08:13:52 -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 Simplify bootstrap script source dir detection 2009-09-25 10:48:24 -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