CMake is incredibly complicated and difficult to use. It's very easy to do things wrong, and very hard to do things right. I got tired of spending hours poring over mostly wrong online resources to get a basic build system running, so I built some templates.
These are basic template directory structures and build files to get you started using CMake for real world applications. I wrote them because there simply were no "Use this as a baseline" modern CMake setups to be found anywhere.
I've commented them to explain why the various parts are included and what they do. If I'm doing something wrong (highly likely), please make a pull request with the right way to do it! :)
These structures and concepts have been pulled together from many sources. For a good primer on modern CMake, see https://cliutils.gitlab.io/modern-cmake/
Note: Remember to git submodule update --init --recursive