CMake/Modules
Alexander Neundorf f05fe5f414 STYLE: don't use the hack to copy and rename the created executable under
cygwin but instead use the SUFFIX target property (I'll publish a short
article about ecos+cmake RSN)

Alex
2006-08-22 18:33:49 -04:00
..
Platform ENH: Adding flags to force generation of manifest files when building with VC 8. 2006-08-15 15:33:20 -04:00
AddFileDependencies.cmake BUG: don't include MacroLibrary.cmake, but add a cmake module which implements ADD_FILE_DEPENDENCIES() 2006-03-20 12:29:56 -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: add support for watcom wmake and wcl386 2006-01-17 10:21:45 -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 ENH: fix more than one argument passed in to compilers via environment 2006-01-25 11:41:05 -05:00
CMakeCInformation.cmake ENH: Split CMAKE_STANDARD_LIBRARIES into per-language variables CMAKE_<lang>_STANDARD_LIBRARIES. This is needed to get programmable language support working with Visual Studio generators. It makes sense anyway. 2006-04-11 16:55:49 -04:00
CMakeCXXCompiler.cmake.in BUG: Need to duplicate some information from CMakeCCompiler to support C++-only projects. 2006-02-09 13:48:09 -05:00
CMakeCXXInformation.cmake ENH: Split CMAKE_STANDARD_LIBRARIES into per-language variables CMAKE_<lang>_STANDARD_LIBRARIES. This is needed to get programmable language support working with Visual Studio generators. It makes sense anyway. 2006-04-11 16:55:49 -04:00
CMakeCommonLanguageInclude.cmake BUG: fix for 3550 again 2006-07-26 13:19:34 -04:00
CMakeConfigurableFile.in ENH: Make modules use configure instead of file write 2006-02-23 09:58:07 -05:00
CMakeDetermineCCompiler.cmake ENH: centralized locaiton of CMakeFiles setting 2006-06-14 12:28:32 -04:00
CMakeDetermineCXXCompiler.cmake BUG: CMAKE_AR should be advanced. 2006-07-22 08:11:30 -04:00
CMakeDetermineFortranCompiler.cmake ENH: centralized locaiton of CMakeFiles setting 2006-06-14 12:28:32 -04:00
CMakeDetermineJavaCompiler.cmake ENH: centralized locaiton of CMakeFiles setting 2006-06-14 12:28:32 -04:00
CMakeDetermineRCCompiler.cmake ENH: centralized locaiton of CMakeFiles setting 2006-06-14 12:28:32 -04:00
CMakeDetermineSystem.cmake ENH: centralized locaiton of CMakeFiles setting 2006-06-14 12:28:32 -04: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
CMakeFindWMake.cmake ENH: add support for watcom wmake and wcl386 2006-01-17 10:21:45 -05:00
CMakeFindXCode.cmake ENH: add trycompile code for xcode 2005-02-01 13:12:19 -05:00
CMakeFortranCompiler.cmake.in ENH: Merge debian changes. Support more fortran extensions 2006-07-04 11:06:38 -04:00
CMakeFortranInformation.cmake ENH: Split CMAKE_STANDARD_LIBRARIES into per-language variables CMAKE_<lang>_STANDARD_LIBRARIES. This is needed to get programmable language support working with Visual Studio generators. It makes sense anyway. 2006-04-11 16:55:49 -04:00
CMakeGenericSystem.cmake ENH: Adding advanced option CMAKE_COLOR_MAKEFILE for makefile generators with default ON. 2006-05-25 14:16:28 -04:00
CMakeImportBuildSettings.cmake ENH: fix for case difference with nmake 2006-07-24 16:58:05 -04: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: fix java and add OBJECT_DIR support 2006-04-17 14:01:22 -04:00
CMakeLists.txt ENH: Installing readme.txt in Modules directory to be consistent with windows. 2003-08-11 17:34:12 -04:00
CMakeMSYSFindMake.cmake ENH: better algorithm for looking for make and gcc on msys and mingw 2006-02-15 21:26:47 -05:00
CMakeMinGWFindMake.cmake ENH: better algorithm for looking for make and gcc on msys and mingw 2006-02-15 21:26:47 -05: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: fix spelling errors 2006-02-27 12:14:10 -05:00
CMakeSystem.cmake.in ENH: add CMAKE_SYSTEM_PROCESSOR 2003-06-11 10:07:57 -04:00
CMakeSystemSpecificInformation.cmake BUG: When copying the module variables from shared library variables use double quotes for the required definitions ...PREFIX and ...SUFFIX to make sure a value is set even if it is empty. 2006-03-16 17:07:36 -05:00
CMakeTestCCompiler.cmake COMP: More warnings and hp issues 2006-07-26 14:10:14 -04:00
CMakeTestCXXCompiler.cmake ENH: centralized locaiton of CMakeFiles setting 2006-06-14 12:28:32 -04:00
CMakeTestForFreeVC.cxx ENH better test for free VC tools 2004-09-03 15:19:58 -04:00
CMakeTestFortranCompiler.cmake ENH: centralized locaiton of CMakeFiles setting 2006-06-14 12:28:32 -04: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
CMakeVCManifest.cmake ENH: Adding flags to force generation of manifest files when building with VC 8. 2006-08-15 15:33:20 -04:00
CMakeVS6BackwardCompatibility.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CMakeVS6FindMake.cmake ENH: add correct flags for msvc generators 2006-04-10 13:46:37 -04:00
CMakeVS7BackwardCompatibility.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
CMakeVS7FindMake.cmake ENH: add correct flags for msvc generators 2006-04-10 13:46:37 -04:00
CMakeVS8FindMake.cmake ENH: add correct flags for msvc generators 2006-04-10 13:46:37 -04:00
CMakeVS71FindMake.cmake ENH: add correct flags for msvc generators 2006-04-10 13:46:37 -04:00
CPack.Description.plist.in ENH: More CPack stuff and fix zlib compression 2006-01-04 15:14:09 -05:00
CPack.Info.plist.in ENH: Add verbose flag to package maker and add CFBundleIdentifier string 2006-03-03 10:52:26 -05:00
CPack.STGZ_Header.sh.in ENH: Better output 2006-05-03 16:24:14 -04:00
CPack.cmake ENH: Several cleanups and support for multiple generators 2006-07-09 13:20:07 -04:00
CTest.cmake BUG: fix typo 2006-06-28 15:15:01 -04:00
CTestTargets.cmake ENH: Initial import 2005-08-03 13:19:36 -04:00
CheckCSourceCompiles.cmake ENH: fixs for check compile stuff from Oswald B. 2006-08-21 10:10:28 -04:00
CheckCSourceRuns.cmake ENH: fixs for check compile stuff from Oswald B. 2006-08-21 10:10:28 -04:00
CheckCXXSourceCompiles.cmake ENH: fixs for check compile stuff from Oswald B. 2006-08-21 10:10:28 -04:00
CheckCXXSourceRuns.cmake ENH: fixs for check compile stuff from Oswald B. 2006-08-21 10:10:28 -04: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: centralized locaiton of CMakeFiles setting 2006-06-14 12:28:32 -04:00
CheckIncludeFile.c.in BUG: Fix signature of main to work on both strict ANSI and non-ANSI C compilers. 2006-05-18 10:28:12 -04:00
CheckIncludeFile.cmake ENH: centralized locaiton of CMakeFiles setting 2006-06-14 12:28:32 -04:00
CheckIncludeFile.cxx.in Complete rework of makefile generators expect trouble 2002-11-08 15:46:08 -05:00
CheckIncludeFileCXX.cmake ENH: centralized locaiton of CMakeFiles setting 2006-06-14 12:28:32 -04:00
CheckIncludeFiles.cmake ENH: centralized locaiton of CMakeFiles setting 2006-06-14 12:28:32 -04:00
CheckLibraryExists.cmake ENH: centralized locaiton of CMakeFiles setting 2006-06-14 12:28:32 -04: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: centralized locaiton of CMakeFiles setting 2006-06-14 12:28:32 -04:00
CheckTypeSize.c.in ENH: fix checktypesize 2006-01-13 09:57:15 -05:00
CheckTypeSize.cmake ENH: centralized locaiton of CMakeFiles setting 2006-06-14 12:28:32 -04: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: centralized locaiton of CMakeFiles setting 2006-06-14 12:28:32 -04: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
FindBoost.cmake ENH: Adding FindBoost.cmake module from Andrew Maclean. This addresses bug#3447. 2006-07-21 12:04:05 -04: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: use program files env for searching 2006-02-28 10:27:30 -05:00
FindDoxygen.cmake ENH: use program files env for searching 2006-02-28 10:27:30 -05:00
FindFLTK.cmake ENH: some style fixes for the book 2005-12-15 10:41:19 -05:00
FindGCCXML.cmake ENH: use program files env for searching 2006-02-28 10:27:30 -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: use program files env for searching 2006-02-28 10:27:30 -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: honor REQUIRED flag 2006-05-11 18:32:40 -04:00
FindJava.cmake ENH: some style fixes for the book 2005-12-15 10:41:19 -05:00
FindKDE.cmake ENH: add real-world-tested and used KDE3 support, and obsolete FindKDE.cmake, which wasn't used by anybody that I heard of 2006-03-09 14:10:59 -05:00
FindKDE3.cmake BUG: Fix usage of FIND_PROGRAM command. 2006-08-01 14:10:05 -04:00
FindKDE4.cmake ENH: prefer kde4-config over kde-config, since for KDE 4 kde-config will be 2006-07-04 08:38:47 -04: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: use program files env for searching 2006-02-28 10:27:30 -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: On apple do not look for X11 2006-07-05 16:21:24 -04:00
FindPHP4.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindPNG.cmake BUG: don't include MacroLibrary.cmake, but add a cmake module which implements ADD_FILE_DEPENDENCIES() 2006-03-20 12:29:56 -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: Updated implementation to use new FIND_* command power. The correct library is now found on MinGW also. 2006-03-24 14:47:25 -05:00
FindQt.cmake ENH: change to fatal error 2006-01-25 12:16:49 -05:00
FindQt3.cmake ENH: try to find qt3 better 2006-05-07 13:04:57 -04:00
FindQt4.cmake ENH: fix for qtmain 2006-08-01 15:48:44 -04: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: centralized locaiton of CMakeFiles setting 2006-06-14 12:28:32 -04: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: fix a bug in the find path stuff so that it can find headers deep in frameworks 2006-03-09 11:35:38 -05:00
FindTIFF.cmake ENH: Removing platform-specific name hacks now that FIND_LIBRARY handles it. 2006-02-09 15:08:16 -05:00
FindTclsh.cmake ENH: cleanups 2005-12-15 14:17:43 -05:00
FindThreads.cmake ENH: centralized locaiton of CMakeFiles setting 2006-06-14 12:28:32 -04:00
FindUnixCommands.cmake ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
FindVTK.cmake ENH: Add ability to find VTK 5 without user help. 2006-05-23 10:40:40 -04: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: fix find x11 on the mac 2006-04-17 15:55:24 -04:00
FindZLIB.cmake BUG: don't append to ZLIB_NAMES 2006-06-09 15:49:27 -04:00
FindwxWidgets.cmake ENH: Applying patch from bug#3443 to implement FindwxWidgets.cmake properly. It also updates the UseWX test and WXDialog sources to use the new find script. 2006-07-21 15:43:19 -04:00
FindwxWindows.cmake ENH: Applying patch from bug#3443 to implement FindwxWidgets.cmake properly. It also updates the UseWX test and WXDialog sources to use the new find script. 2006-07-21 15:43:19 -04:00
InstallRequiredSystemLibraries.cmake ENH: Implemented support for installing VC8 runtime libraries. 2006-08-17 09:36:29 -04:00
KDE3Macros.cmake BUG: kde3: use QT_UIC_EXECUTABLE instead of simply uic 2006-05-19 16:57:49 -04:00
MacOSXBundleInfo.plist.in ENH: Improve Mac OSX bundle support 2004-04-08 17:13:42 -04:00
MacroAddFileDependencies.cmake ENH: Updates from KDE 2006-06-16 14:45:47 -04:00
NSIS.InstallOptions.ini.in ENH: use radio buttons to choose PATH options 2006-05-10 12:15:00 -04:00
NSIS.template.in ENH: use radio buttons to choose PATH options 2006-05-10 12:15:00 -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: centralized locaiton of CMakeFiles setting 2006-06-14 12:28:32 -04:00
TestCXXAcceptsFlag.cmake ENH: centralized locaiton of CMakeFiles setting 2006-06-14 12:28:32 -04:00
TestForANSIForScope.cmake ENH: centralized locaiton of CMakeFiles setting 2006-06-14 12:28:32 -04: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
TestForSSTREAM.cmake ENH: centralized locaiton of CMakeFiles setting 2006-06-14 12:28:32 -04:00
TestForSSTREAM.cxx ENH: add support for watcom wmake and wcl386 2006-01-17 10:21:45 -05:00
TestForSTDNamespace.cmake ENH: centralized locaiton of CMakeFiles setting 2006-06-14 12:28:32 -04:00
TestForSTDNamespace.cxx Complete rework of makefile generators expect trouble 2002-11-08 15:46:08 -05:00
UseEcos.cmake STYLE: don't use the hack to copy and rename the created executable under 2006-08-22 18:33:49 -04:00
UsePkgConfig.cmake BUG: change the formatting of the pkgconfig module documentation so that it 2006-03-15 13:20:03 -05:00
UseQt4.cmake ENH: fix for optimized debug stuff 2006-08-01 12:27:53 -04: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: Applying patch from bug#3443 to implement FindwxWidgets.cmake properly. It also updates the UseWX test and WXDialog sources to use the new find script. 2006-07-21 15:43:19 -04:00
UsewxWidgets.cmake ENH: Applying patch from bug#3443 to implement FindwxWidgets.cmake properly. It also updates the UseWX test and WXDialog sources to use the new find script. 2006-07-21 15:43:19 -04:00
VTKCompatibility.cmake ENH: add backwards compatibility fix for more aggressive find_path command 2006-03-13 13:11:50 -05:00
kde3init_dummy.cpp.in ENH: add real-world-tested and used KDE3 support, and obsolete FindKDE.cmake, which wasn't used by anybody that I heard of 2006-03-09 14:10:59 -05:00
kde3uic.cmake BUG: kde3: use QT_UIC_EXECUTABLE instead of simply uic 2006-05-19 16:57:49 -04:00
readme.txt ENH: Added documentation about XXX_FIND_COMPONENTS for FIND_PACKAGE. 2006-07-21 15:16:23 -04: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_DIRS        The final set of include directories listed in one variable for use by client code.  This should not be a cache entry.
XXX_LIBRARIES          	The libraries to link against to use XXX. These should include full paths.  This should not be a cache entry.
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_LIBRARY_DIRS        Optionally, the final set of library directories listed in one variable for use by client code.  This should not be a cache entry.
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.
XXX_INCLUDE_DIR        	Where to find xxx.h, etc.  (XXX_INCLUDE_PATH was considered bad because a path includes an actual filename.)
XXX_YY_INCLUDE_DIR      Where to find xxx_yy.h, etc.

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 document 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.

A FindXXX.cmake module will typically be loaded by the command

  FIND_PACKAGE(XXX [QUIET] [REQUIRED [components...]])

If the QUIET option is given to the command it will set the variable
XXX_FIND_QUIETLY to true before loading the FindXXX.cmake module.  If
this variable is set the module should not complain about not being
able to find the package and should never issue a FATAL_ERROR.  If the
REQUIRED option is given to the command it will set the variable
XXX_FIND_REQUIRED to true before loading the FindXXX.cmake module.  If
this variable is set the module should issue a FATAL_ERROR if the
package cannot be found.  For each package-specific component, say
YYY, listed after the REQUIRED option a variable XXX_FIND_REQUIRED_YYY
to true.  The set of components listed will also be specified in a
XXX_FIND_COMPONENTS variable.  This can be used by the FindXXX.cmake
module to determine which sub-components of the package must be found.
If neither the QUIET nor REQUIRED options are given then the
FindXXX.cmake module should look for the package and complain without
error if the module is not found.