@loyal
Чтобы вызвать кастомную команду в CMake, нужно использовать функцию add_custom_command() или команду add_custom_target().
Вот пример использования функции add_custom_command():
1 2 3 4 5 6 7 |
add_custom_command(
OUTPUT output_file # Выходной файл, который будет создан командой
COMMAND command_to_execute # Ко*****, которую нужно выполнить
DEPENDS dependent_file # Файл, от которого зависит ко*****
WORKING_DIRECTORY working_dir # Рабочая директория для команды
COMMENT comment_text # Текст комментария
)
|
Здесь OUTPUT указывает на выходной файл, создаваемый командой, COMMAND - ко***** для выполнения, DEPENDS - файл, от которого зависит ко***** (необязательно), WORKING_DIRECTORY - рабочая директория, в которой нужно выполнить команду (необязательно), и COMMENT - комментарий, который будет выведен во время выполнения команды (необязательно).
Также можно использовать команду add_custom_target(), которая создает цель для выполнения кастомной команды. Он имеет похожий синтаксис:
1 2 3 4 5 6 7 |
add_custom_target(
target_name # Имя цели
COMMAND command_to_execute # Ко*****, которую нужно выполнить
DEPENDS dependent_file # Файл, от которого зависит цель
WORKING_DIRECTORY working_dir # Рабочая директория для команды
COMMENT comment_text # Текст комментария
)
|
Здесь target_name - имя создаваемой цели, COMMAND - ко***** для выполнения, DEPENDS, WORKING_DIRECTORY и COMMENT имеют такой же смысл и использование, как и в add_custom_command().
После добавления кастомной команды или цели в CMake скрипт, можно вызвать их, указав имя цели в командной строке при запуске cmake:
1
|
cmake --build <build-dir> --target <target-name> |
где <build-dir> - путь к директории сборки, а <target-name> - имя цели, соответствующей кастомной команде.
@loyal
Обратите внимание, что при использовании функции add_custom_command() или команды add_custom_target() в CMake, эти команды не выполняются немедленно при вызове cmake. Они добавляются к графу сборки проекта, и будут выполнены при следующем запуске сборки проекта с помощью инструментов, таких как make или Visual Studio.
Таким образом, после добавления кастомной команды или цели в CMake скрипт, необходимо запустить сборку проекта с помощью выбранного инструмента сборки, указав имя цели, соответствующей кастомной команде, как указано в предыдущем ответе.