CMake/Modules
Ken Martin 74eaecfc3e ENH: cleanups 2005-12-15 14:17:43 -05:00
..
Platform BUG: fix for bug 2488 2005-11-22 12:04:41 -05:00
CMake.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CMakeAddNewLanguage.txt ENH: clean up EnableLanguage try to fix problem where try compile runs cmake 2005-09-15 12:17:38 -04:00
CMakeBackwardCompatibilityC.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CMakeBackwardCompatibilityCXX.cmake ENH: some style fixes for the book 2005-12-15 10:41:19 -05:00
CMakeBorlandFindMake.cmake determine CMAKE_MAKE_PROGRAM in EnableLanguage 2002-12-03 16:19:16 -05:00
CMakeBuildSettings.cmake.in ENH: Adding CMAKE_EXPORT_BUILD_SETTINGS and CMAKE_IMPORT_BUILD_SETTINGS macro. 2002-12-05 09:46:30 -05:00
CMakeCCompiler.cmake.in BUG: fix SIZEOF VOIDP problem 2005-11-14 14:21:39 -05:00
CMakeCInformation.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CMakeCXXCompiler.cmake.in ENH: make sure flags set in CC or CXX environment variables stay with the compiler 2005-07-20 15:44:55 -04:00
CMakeCXXInformation.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CMakeCommonLanguageInclude.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CMakeDetermineCCompiler.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CMakeDetermineCXXCompiler.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CMakeDetermineFortranCompiler.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CMakeDetermineJavaCompiler.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CMakeDetermineRCCompiler.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CMakeDetermineSystem.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CMakeExportBuildSettings.cmake ENH: some style fixes for the book 2005-12-15 10:41:19 -05:00
CMakeFindFrameworks.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CMakeFindXCode.cmake ENH: add trycompile code for xcode 2005-02-01 13:12:19 -05:00
CMakeFortranCompiler.cmake.in ENH: make sure flags set in CC or CXX environment variables stay with the compiler 2005-07-20 15:44:55 -04:00
CMakeFortranInformation.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CMakeGenericSystem.cmake ENH: Picking better default for CMAKE_INSTALL_PREFIX on Windows by using ProgramFiles environment variable. Now that install actually works on Windows I'm making this entry non-advanced also. 2005-08-29 15:49:51 -04:00
CMakeImportBuildSettings.cmake ENH: some style fixes for the book 2005-12-15 10:41:19 -05:00
CMakeJavaCompiler.cmake.in ENH: make sure flags set in CC or CXX environment variables stay with the compiler 2005-07-20 15:44:55 -04:00
CMakeJavaInformation.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CMakeLists.txt ENH: Installing readme.txt in Modules directory to be consistent with windows. 2003-08-11 17:34:12 -04:00
CMakeNMakeFindMake.cmake determine CMAKE_MAKE_PROGRAM in EnableLanguage 2002-12-03 16:19:16 -05:00
CMakePrintSystemInformation.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CMakeRCCompiler.cmake.in ENH: make sure flags set in CC or CXX environment variables stay with the compiler 2005-07-20 15:44:55 -04:00
CMakeRCInformation.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CMakeSystem.cmake.in ENH: add CMAKE_SYSTEM_PROCESSOR 2003-06-11 10:07:57 -04:00
CMakeSystemSpecificInformation.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CMakeTestCCompiler.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CMakeTestCXXCompiler.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CMakeTestForFreeVC.cxx ENH better test for free VC tools 2004-09-03 15:19:58 -04:00
CMakeTestFortranCompiler.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CMakeTestGNU.c BUG: fix problem where cmake thinks the intel compiler is gnu 2004-05-18 14:33:12 -04:00
CMakeTestJavaCompiler.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CMakeTestNMakeCLVersion.c added test for whether pdbtype should be used for nmake 2003-08-05 09:55:20 -04:00
CMakeTestRCCompiler.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CMakeUnixFindMake.cmake BUG: Removed stray debugging message. 2002-12-04 16:59:05 -05:00
CMakeVS6BackwardCompatibility.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CMakeVS6FindMake.cmake ENH: Cleanups and add missing CMakeOutput.log and CMakeError.log appending. Close Bug #136 - Verify that all modules that do try compile produce CMakeError.log and CMakeOutput.log 2003-08-08 11:59:07 -04:00
CMakeVS7BackwardCompatibility.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CMakeVS7FindMake.cmake ENH: Cleanups and add missing CMakeOutput.log and CMakeError.log appending. Close Bug #136 - Verify that all modules that do try compile produce CMakeError.log and CMakeOutput.log 2003-08-08 11:59:07 -04:00
CMakeVS8FindMake.cmake COMP: Fix for support of VS 8.0 beta 2 2005-05-26 17:30:13 -04:00
CMakeVS71FindMake.cmake ENH: Cleanups and add missing CMakeOutput.log and CMakeError.log appending. Close Bug #136 - Verify that all modules that do try compile produce CMakeError.log and CMakeOutput.log 2003-08-08 11:59:07 -04:00
CTest.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CTestTargets.cmake ENH: Initial import 2005-08-03 13:19:36 -04:00
CheckCSourceCompiles.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CheckCXXSourceCompiles.cmake ENH: some style fixes for the book 2005-12-15 10:41:19 -05:00
CheckForPthreads.c ENH: fix tests for non-ansi c on hp and remove warnings for ansi c 2004-04-15 08:22:19 -04:00
CheckFunctionExists.c ENH: fix tests for non-ansi c on hp and remove warnings for ansi c 2004-04-15 08:22:19 -04:00
CheckFunctionExists.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CheckIncludeFile.c.in Simplify checking for headers 2002-09-20 14:16:43 -04:00
CheckIncludeFile.cmake ENH: some style fixes for the book 2005-12-15 10:41:19 -05:00
CheckIncludeFile.cxx.in Complete rework of makefile generators expect trouble 2002-11-08 15:46:08 -05:00
CheckIncludeFileCXX.cmake ENH: some style fixes for the book 2005-12-15 10:41:19 -05:00
CheckIncludeFiles.cmake ENH: some style fixes for the book 2005-12-15 10:41:19 -05:00
CheckLibraryExists.cmake ENH: some style fixes for the book 2005-12-15 10:41:19 -05:00
CheckLibraryExists.lists.in Initial attempt to check if library exists 2002-09-24 16:36:56 -04:00
CheckSizeOf.cmake ENH: Renamed Modules/CheckSizeOf to Modules/CheckTypeSize for consistency with the macro name that is defined by the module. 2002-12-30 11:02:31 -05:00
CheckSymbolExists.cmake ENH: some style fixes for the book 2005-12-15 10:41:19 -05:00
CheckTypeSize.c.in ENH: Add option of adding random include files before doing CheckTypeSize 2004-10-05 08:33:08 -04:00
CheckTypeSize.cmake ENH: some style fixes for the book 2005-12-15 10:41:19 -05:00
CheckVariableExists.c BUG#502: Do not let optimizing compilers think the symbol exists. Require the symbol by making the return value depend on it to force linking. 2004-04-26 10:19:44 -04:00
CheckVariableExists.cmake ENH: some style fixes for the book 2005-12-15 10:41:19 -05:00
Dart.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
DartConfiguration.tcl.in ENH: Reorganize and add subversion support 2005-02-16 13:30:17 -05:00
Documentation.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
DummyCXXFile.cxx add checks for ansi flags and not hard code them 2002-11-21 12:52:54 -05:00
FindAVIFile.cmake ENH: some style fixes for the book 2005-12-15 10:41:19 -05:00
FindCABLE.cmake ENH: some style fixes for the book 2005-12-15 10:41:19 -05:00
FindCurses.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
FindCygwin.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
FindDCMTK.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
FindDart.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
FindDoxygen.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
FindFLTK.cmake ENH: some style fixes for the book 2005-12-15 10:41:19 -05:00
FindGCCXML.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
FindGLU.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
FindGLUT.cmake ENH: some style fixes for the book 2005-12-15 10:41:19 -05:00
FindGTK.cmake ENH: some style fixes for the book 2005-12-15 10:41:19 -05:00
FindGnuplot.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
FindHTMLHelp.cmake ENH: some style fixes for the book 2005-12-15 10:41:19 -05:00
FindITK.cmake ENH: some style fixes for the book 2005-12-15 10:41:19 -05:00
FindImageMagick.cmake ENH: some style fixes for the book 2005-12-15 10:41:19 -05:00
FindJNI.cmake ENH: some style fixes for the book 2005-12-15 10:41:19 -05:00
FindJPEG.cmake ENH: some style fixes for the book 2005-12-15 10:41:19 -05:00
FindJava.cmake ENH: some style fixes for the book 2005-12-15 10:41:19 -05:00
FindKDE.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
FindLATEX.cmake ENH: some style fixes for the book 2005-12-15 10:41:19 -05:00
FindMFC.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindMPEG.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindMPEG2.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindMPI.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindMatlab.cmake ENH: some style fixes for the book 2005-12-15 10:41:19 -05:00
FindMotif.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindOpenAL.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
FindOpenGL.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindPHP4.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindPNG.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
FindPerl.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindPerlLibs.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindPhysFS.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindPike.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindPythonInterp.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindPythonLibs.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindQt.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindQt3.cmake ENH: fix module documenation to handle bad docs and fix qt3 docs 2005-12-15 09:19:23 -05:00
FindQt4.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindRuby.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindSDL.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindSDL_image.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindSDL_mixer.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindSDL_net.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindSDL_sound.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindSDL_ttf.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindSWIG.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
FindSelfPackers.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
FindTCL.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindTIFF.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindTclsh.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindThreads.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindUnixCommands.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
FindVTK.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindWget.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindWish.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindX11.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindZLIB.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
FindwxWidgets.cmake ENH: Cleanup. Use relative path to modules 2004-08-26 22:52:53 -04:00
FindwxWindows.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
MacOSXBundleInfo.plist.in ENH: Improve Mac OSX bundle support 2004-04-08 17:13:42 -04:00
TestBigEndian.c ENH: fix tests for non-ansi c on hp and remove warnings for ansi c 2004-04-15 08:22:19 -04:00
TestBigEndian.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
TestCXXAcceptsFlag.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
TestForANSIForScope.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
TestForANSIStreamHeaders.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
TestForANSIStreamHeaders.cxx new try compile module 2002-09-12 11:14:50 -04:00
TestForAnsiForScope.cxx ERR: Removed warning for unused variable. 2003-05-16 16:33:11 -04:00
TestForSTDNamespace.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
TestForSTDNamespace.cxx Complete rework of makefile generators expect trouble 2002-11-08 15:46:08 -05:00
UseQt4.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
UseSWIG.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
UseVTK40.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
UseVTKBuildSettings40.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
UseVTKConfig40.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
Use_wxWindows.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
UsewxWidgets.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
VTKCompatibility.cmake ENH: fix problem with building vtk 4.4.2 2005-11-28 14:19:57 -05:00
readme.txt ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00

readme.txt

Note to authors of FindXXX.cmake files

We would like all FindXXX.cmake files to produce consistent variable names.

Please use the following consistent variable names for general use.

XXX_INCLUDE_DIR        	Where to find xxx.h, etc. If for some reason, you really need two paths, then that shouldn't be a problem - however, consider if you really should have two different FindXXX.cmake files. (XXX_INCLUDE_PATH was considered bad because a path includes an actual filename.)
XXX_LIBRARIES          	The libraries to link against to use XXX. These should include full paths.
XXX_DEFINITIONS        	Definitions to use when compiling code that uses XXX. This really shouldn't include options such as (-DHAS_JPEG)that a client source-code file uses to decide whether to #include <jpeg.h>
XXX_EXECUTABLE         	Where to find the XXX tool.
XXX_YYY_EXECUTABLE     	Where to find the YYY tool that comes with XXX.
XXX_ROOT_DIR           	Where to find the base directory of XXX.
XXX_VERSION_YY		Expect Version YY if true. Make sure at most one of these is ever true.
XXX_WRAP_YY		If False, do not try to use the relevent CMake wrapping command.
XXX_YY_FOUND           	If False, optional YY part of XXX sytem is not available.
XXX_FOUND              	Set to false, or undefined, if we haven't found, or don't want to use XXX.

You do not have to provide all of the above variables. You should provide XXX_FOUND under most circumstances. If XXX is a library, then  XXX_LIBRARIES, should also be defined, and XXX_INCLUDE_DIR should usually be defined (I guess libm.a might be an exception)

The following names should not usually be used in CMakeLists.txt files, but they may be usefully modified in users' CMake Caches to control stuff.

XXX_LIBRARY		Name of XXX Library. A User may set this and XXX_INCLUDE_DIR to ignore to force non-use of XXX.
XXX_YY_LIBRARY		Name of YY library that is part of the XXX system. It may or may not be required to use XXX.

For tidiness's sake, try to keep as many options as possible out of the cache, leaving at least one option which can be used to disable use of the module, or locate a not-found library (e.g. XXX_ROOT_DIR). For the same reason, mark most cache options as advanced.

If you need other commands to do special things then it should still begin with XXX_. This gives a sort of namespace effect and keeps things tidy for the user. You should put comments describing all the exported settings, plus descriptions of any the users can use to control stuff.

You really should also provide backwards compatibility any old settings that were actually in use. Make sure you comment them as deprecated, so that no-one starts using them.

To correctly docuement a module, create a comment block at the top with # comments.  There are three types of comments that can be in the block:

1. The brief description of the module, this is done by:
# - a small description

2. A paragraph of text.  This is done with all text that has a single
space between the # and the text.  To create a new paragraph, just
put a # with no text on the line.

3. A verbatim line.  This is done with two spaces between the # and the text.

For example:

# - This is a cool module
# This module does really cool stuff.
# It can do even more than you think.
# 
# It even needs to paragraphs to tell you about it.
# And it defines the following variables:
#  VAR_COOL - this is greate isn't it?
#  VAR_REALLY_COOL - cool right?
#

To have a .cmake file in this directory NOT show up in the
modules documentation, you should start the file with a blank
line.