Цель сборки
То, что CMake должен собрать: программа или библиотека, у каждой есть имя и список файлов. Программу создаёт строка вроде add_executable(app main.cpp), библиотеку — add_library(glfw …).
В CMakeLists.txt мы не пишем, как именно собирать, а говорим, что должно получиться.
Строка add_executable(app main.cpp) значит: «нужна программа app, её код — в main.cpp».
Эта программа и есть цель: у неё есть имя и файлы с кодом. По имени получится готовый файл: из app — app.exe.
То же имя app ты увидишь в Visual Studio в списке того, что можно запустить.
Целью бывает не только программа. Библиотека — это готовый код, который подключают к программам, — тоже цель: add_library(имя …).
Например, движок можно собрать как библиотеку, а игру — как программу, которая её использует.