My patches to CMake
Go to file
Stephen Kelly bd34963002 Refactor generation of shared library flags
CMAKE_SHARED_LIBRARY_<lang>_FLAGS has flags on various platforms for a
variety of purposes that are correlated with shared libraries but not
exclusive to them.  Refactor generation of these flags to use new
purpose-specific platform variables

  CMAKE_<lang>_COMPILE_OPTIONS_DLL
  CMAKE_<lang>_COMPILE_OPTIONS_PIC
  CMAKE_<lang>_COMPILE_OPTIONS_PIE

Activate the DLL flags specifically for shared libraries.  Add a new
POSITION_INDEPENDENT_CODE target property to activate PIC/PIE flags, and
default to true for shared libraries to preserve default behavior.
Initialize the new property from CMAKE_POSITION_INDEPENDENT_CODE to
allow easy global configuration in projects.

Although the default behavior is unchanged by this refactoring, the new
approach ignores CMAKE_SHARED_LIBRARY_<lang>_FLAGS completely.  We must
leave it set in case projects reference the value.  Furthermore, if a
project modifies CMAKE_SHARED_LIBRARY_<lang>_FLAGS it expects the new
value to be used.  Add policy CMP0018 to handle compatibility with
projects that modify this platform variable.

Add a PositionIndependentCode test on platforms where we can get
meaningful results.
2012-06-12 15:38:48 -04:00
Docs Install editors helper files 2012-04-23 20:49:33 +02:00
Example ENH: updte to lower case and using ADD_SUBDIRECTORY 2005-06-27 12:44:11 -04:00
Modules Add platform variable for flags specific to shared libraries 2012-06-12 15:38:48 -04:00
Source Refactor generation of shared library flags 2012-06-12 15:38:48 -04:00
Templates Update CPackConfig template. 2012-02-25 23:07:07 +01:00
Tests Refactor generation of shared library flags 2012-06-12 15:38:48 -04:00
Utilities Merge topic 'require-CMake-2.8.2' 2012-05-01 14:08:53 -04:00
.gitattributes Exclude from source archives files specific to Git work tree 2012-03-02 13:39:29 -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 Require CMake 2.8.2 or higher to build CMake 2012-04-26 16:39:54 -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 Merge topic 'bootstrap-old-sh' 2012-05-29 15:36:47 -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