@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 скрипт, необходимо запустить сборку проекта с помощью выбранного инструмента сборки, указав имя цели, соответствующей кастомной команде, как указано в предыдущем ответе.