В семантике CMake существует какое-то различие между "целями" и командами ", которые меня озадачивают. В Makefile нет такого различия:
targetname:dependency
command
то есть. Цели соответствуют сгенерированному файлу с тем же именем.
В CMake у вас есть команды типа "add_custom_command" и "add_custom_target", которые имеют перекрывающиеся функциональные возможности, и даже в официальной документации семантика путается, то есть в "Освоение CMake, 5th edition", стр. 110 в разделе "Добавление настраиваемой цели":
Аргумент DEPENDS устанавливает зависимость между пользовательской целью и пользовательские команды.
Мое понимание заключается в том, что цели (сгенерированные файлы) имеют зависимости (другие файлы, сгенерированные или отсутствующие) и команду на самом деле генерировать. Бессмысленно говорить, что цель зависит от команды. Хуже того, есть два варианта "add_custom_command", которые присоединяют дополнительную команду к существующей цели или выплевывают команду в эфир.
Может кто-нибудь объяснить, почему это различие существует?