У нас есть несколько npm сборок, которые запускаются в пакете cmake. Это не работает, и создаваемые сообщения об ошибках совершенно неразборчивы.
Чтобы смягчить это, я пытаюсь добавить уровень обработки, чтобы создать полезное сообщение для разработчиков, чтобы они могли понять, что они должны это сделать (в данном случае обновить некоторый контент внутри самого CMakeLists.txt).
Вот насколько я понял. Я создал свой скрипт «scripts / check-files. sh», и я определенно могу успешно запустить его выполнение через
add_custom_target(check_files ALL
COMMAND ${CMAKE_COMMAND} -E echo "check_files: Checking if your files are properly listed for the file lists in CMakeLists.txt:"
COMMAND "${CMAKE_CURRENT_LIST_DIR}/scripts/check-files.sh")
Это дает
make[2]: *** [CMakeFiles/check_files] Error 1
make[1]: *** [CMakeFiles/check_files.dir/all] Error 2
когда check-files.sh
терпит неудачу и дает ненулевой код возврата, и этого не происходит при успешном выполнении. Поскольку я могу контролировать поведение cmake, изменяя поведение check-files.sh
, я знаю, что он правильно его выполняет. Почему я должен об этом говорить? Что ж ...
Проблема: Я не могу заставить cmake показать мне вывод check_files: Checking if your files are properly listed for the file lists in CMakeLists.txt:
или вывод контрольных файлов. sh исполнение. Обратите внимание, что я не использую КОММЕНТАРИЙ. По-видимому, на это никогда нельзя даже рассчитывать. Но ... COMMAND ${CMAKE_COMMAND} -E echo
, похоже, тоже ничего не делает.
Так как у меня так много проблем даже с выводом отображения моего вспомогательного сценария проверки, я могу придумать одну вещь, которая отображает, а именно имя:
add_custom_target("check_files_PLEASE_CHECK_YOUR_FILE_LIST_IN_CMakeLists.txt" ALL
уступая
make[2]: *** [CMakeFiles/check_files_PLEASE_CHECK_YOUR_FILE_LIST_IN_CMakeLists.txt] Error 1
make[1]: *** [CMakeFiles/check_files_PLEASE_CHECK_YOUR_FILE_LIST_IN_CMakeLists.txt.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [all] Error 2
Это очень далеко от идеала, но достаточно визуальной подписи, чтобы кого-то понять, возможно, придется.