CMake: сбой, если пользовательская команда не может создать один из выходных данных - PullRequest
0 голосов
/ 04 апреля 2019

В моем CMakeLists.txt я использую add_custom_command вместе с add_custom_target для вызова шага генерации кода.

Если шаг генерации кода выполнен успешно, но отсутствует один из файлов, упомянутых в аргументе OUTPUT для add_custom_commandmake удаляет первый файл, упомянутый в OUTPUT, по причинам, изложенным в Почему GNU заставляет удалить файл

(первый файл OUTPUT, поскольку это «основной» файл, который связан сс командой в сгенерированном Makefile)

Пока все хорошо.Проблема, с которой я столкнулся, заключается в том, что это не приводит к немедленной неудаче сборки .Вместо этого, когда сгенерированный код фактически используется в компиляции, компилятор жалуется на отсутствующий заголовок, который, по иронии судьбы, является не файлом, который генератор не сгенерировал, а файлом make, удаленным.

Сообщение, объясняющеето, что файл был удален, также появляется только тогда, когда make запускается с VERBOSE = 1, оставляя меня в темноте слишком долго.

Deleting primary custom command output "/app/tests/eclipseProject/projects/math/build/aragen/matrix2Component/matrix2/includes/serviceInterfaces/matrix/proxy_Mat_SI.h" because another output "/app/tests/eclipseProject/projects/math/build/aragen/matrix2Component/matrix2/vsomeip/serviceInterfaces/matrix/proxy_vsomeip_Mat_SI.h" does not exist.

Как я могу убедиться, что сборка не удалась при попытке собрать поколениецель, перед компиляцией?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...