автоматически выполнять скрипт после документа catkin_make

Интересно, можно ли как-то настроить catkin для автоматического запуска скрипта (или функции CMake) при вызове catkin_make doc.

У меня много разных файлов doxygen index.html (по одному для каждого пакета ROS), и я использую CMake для хранения log.txt с расположением index.html. Затем я хотел бы запустить команду CMake configure_file, используя входные данные из файла log.txt.


person Javi    schedule 28.05.2015    source источник


Ответы (1)


Простое решение

Вероятно, самый простой способ — написать небольшой скрипт-оболочку, который сначала вызывает catkin, а затем ваш скрипт. Что-то вроде:

#!/bin/bash
catkin_make doc
your_script.sh

Конечно, это можно было бы сделать более сложным, например, сначала проверив, не возникли ли какие-либо ошибки во время catkin_make.

Решение CMake

Если простое решение не подходит (например, потому что мы не хотим нарушать рабочий процесс других пользователей), также можно добавить команду пост-сборки для цели в CMake с помощью add_custom_command с помощью параметра POST_BUILD COMMAND:

add_custom_command(TARGET doc
    POST_BUILD COMMAND your_script.sh
)

(Я не уверен, что это будет работать так, как задумано для цели doc, возможно, вам придется немного поэкспериментировать.)

person luator    schedule 28.05.2015
comment
Я думал об этом. Однако это немного изменяет рабочий процесс остальных людей, и это нежелательно. Но все равно спасибо! - person Javi; 28.05.2015
comment
@JaviV: Хорошо, я понимаю твою точку зрения. После недолгого гугления я нашел add_custom_command. Я не уверен, что это может решить вашу проблему, но выглядит многообещающе (предоставляет возможность добавить команду post_build). - person luator; 28.05.2015
comment
пожалуйста, добавьте это как ответ, чтобы я мог принять его, поскольку он делает то, что я хочу. - person Javi; 28.05.2015
comment
@JaviV: Готово. Работает ли мой пример кода с целью doc, как предполагалось? Не стесняйтесь редактировать мой пост, если что-то нужно изменить. - person luator; 28.05.2015