Как добавить зависимость в цели cmake - PullRequest
4 голосов
/ 10 ноября 2011

Я определил пользовательскую цель в cmake.Теперь я хочу убедиться, что эта цель собирается только тогда, когда цель cmake test была выполнена.Как мне этого добиться.

Допустим, у меня есть цель make coverage, которая должна зависеть от цели make test, которую нужно вызвать раньше, или вызову make test перед выполнением.

Как я могу определить это поведение в cmake?

Здесь мой код, который не работал, как ожидалось.Я хочу добиться того, чтобы охват покрытия зависел от того, что вызов теста должен быть вызван раньше.

    ADD_CUSTOM_TARGET(
        coverage COMMAND /bin/bash ${LIBPIPE_BINARY_DIR}/cmake/scripts/coverage.sh
        DEPENDS test
    )  

Ответы [ 2 ]

7 голосов
/ 02 декабря 2011

Вы не можете добавить предложение "DEPENDS test".Предопределенные / встроенные цели в CMake (все, установка, упаковка, тестирование, очистка) недоступны в качестве реальных целей в файле CMakeLists.txt.Поэтому вы не можете выразить зависимость от встроенной цели.

В системе отслеживания ошибок CMake имеется невыполненный запрос функции, но она еще не реализована.См. http://public.kitware.com/Bug/view.php?id=8438

Однако вы можете изменить свою команду для своей пользовательской цели, хотя бы так, чтобы она сначала вызывала «make test», а затем запускала вашу команду покрытия.

2 голосов
/ 10 ноября 2011

FAQ CMake утверждает, что команды add_custom_command/add_custom_target, которые определяют пользовательские цели, имеют параметр DEPENDS.

Редактировать

Этоне будет работать для встроенной цели test из-за следующего запроса функции .

Но вы всегда можете создать собственную цель check или любую другую, как предложено в CMake FAQ

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