Similar to GNU make, CMake is a cross-platform tool designed to build, test and package software. It uses CMakeLists.txt to define build configuration, and have more functionalities compared to GNU make. It is highly recommended to learn GNU Make and get familiar with Makefile first before learning CMake.
How to learn CMake
CMakeLists.txt is more obscure and difficult to understand and use. Nowadays many IDEs (e.g., Visual Studio, CLion) offer functionalities to generate
CMakeLists.txt automatically, but it's still necessary to manage basic usage of
CMakeLists.txt. Besides Official CMake Tutorial, this one-hour video tutorial (in Chinese) presented by IPADS group at SJTU is also a good learning resource.