Where to Find CMake Getting Started Documentation and Learning Resources on cmake.org
cmake.org is the official home of CMake, and it organizes learning material into two main tracks: self-serve documentation (a Getting Started section plus the full Documentation area) and instructor-led training (on-demand courses you take at your own pace, and live sessions led by the developers who build and maintain CMake). If you just want to install CMake and build your first project, start with Getting Started and Documentation. If you want structured teaching, or your team needs a custom course, go to the trainings page instead.
Self-serve: Getting Started and Documentation
The site's resources section is the entry point for learning CMake on your own. Two areas matter most:
- Getting Started — the orientation path for new users. Use it when you have CMake installed (or are about to install it) and want to understand the basic workflow before writing your own build files.
- Documentation — the reference layer. Use it once you're past the first project and need to look up specific commands, variables, or modules.
A practical order of operations:
- Read Getting Started to get a project configured and built end to end.
- Keep Documentation open as a reference while you convert or extend a real project.
- Return to the resources section when you hit a topic you haven't used before (packaging, testing, cross-platform configuration).
The official site describes CMake as the de-facto standard for building C++ code, with over 2 million downloads a month, so the documentation is aimed at a very large and varied audience — expect it to be comprehensive rather than tutorial-paced. That's the main reason the Getting Started path exists separately.
Instructor-led training: on-demand and live
cmake.org lists two training formats, both described as taught by the experts who developed the platforms:
| Format | Pace | Notes from the site |
|---|---|---|
| On-Demand Training | Learn at your own pace | An on-demand CMake course |
| Live Training | Scheduled sessions | Led by the developers who build and maintain CMake; summer and fall sessions available |
Kitware, which maintains CMake, holds training courses throughout the year and can also create a custom course for a team. If you're evaluating training for an organization rather than an individual, the trainings page is where you check details and ask about a custom session.
Choosing between the two paths
- You're new and just need to build something → Getting Started, then Documentation as reference.
- You want a guided curriculum with exercises → On-Demand Training.
- You want to ask questions of the maintainers, or you're training a team → Live Training, or a custom course via the trainings page.
- You need help beyond learning (custom builds, support) → the site points to Kitware's team through its support/contact route.
What the site itself claims, and why it matters for learning
The features CMake advertises — single source builds on multiple platforms, cross-platform packaging, out-of-source builds, system introspection, and a cross-platform testing system — map directly onto what you'll be learning. In practice this means the documentation isn't just about compiling: expect to encounter packaging (CPack) and testing (CTest) alongside the core build configuration. User quotes on the site echo the same themes, describing platform independence, easy setup of complex projects, and connecting multiple small project libraries.
Common sticking points
- Treating Documentation as a tutorial. It's a reference. New users who start there often stall; Getting Started exists to prevent that.
- Skipping the install step. Getting Started assumes CMake is available on your system. Confirm that first.
- Assuming training is free or open. The site lists on-demand and live training as offerings but does not state pricing or access terms on this page — check the trainings page for current details rather than assuming.
- Looking for a single "learn CMake" page. The material is deliberately split between getting started, reference docs, and training; there is no one page that covers everything.