The following resources are available to get help using CMake:

Home Page
 http://www.cmake.org

 The primary starting point for learning about CMake.

Frequently Asked Questions
 http://www.cmake.org/Wiki/CMake_FAQ

 A Wiki is provided containing answers to frequently asked questions.

Online Documentation
 http://www.cmake.org/documentation

 Links to available documentation may be found on this web page.

Mailing List
 http://www.cmake.org/mailing-lists

 For help and discussion about using cmake, a mailing list is
 provided at cmake@cmake.org.  The list is member-post-only but one
 may sign up on the CMake web page.  Please first read the full
 documentation at http://www.cmake.org before posting questions to
 the list.
