Движок с нуля
Справочник

Цель сборки

То, что 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(имя …). Например, движок можно собрать как библиотеку, а игру — как программу, которая её использует.

Как настройки привязываются к цели

Настройки проекта тоже относятся к цели: в команде всегда сказано, к какой цели они применяются. Например, чтобы программе app подключить готовую библиотеку, в CMakeLists.txt пишут такую строку:

target_link_libraries(app glfw)

Как и у любой команды CMake, у неё есть имя и значения в круглых скобках. Имя target_link_libraries значит «подключить к цели библиотеки».

Первое значение в скобках — имя цели, к которой подключаем: это app, программа из строки add_executable. Второе — имя библиотеки: glfw — готовая библиотека для создания окна.