Как прервать обработку CMakeLists для текущего каталога - PullRequest
10 голосов
/ 03 октября 2009

У меня есть структура проекта, такая как:

src/CMakeLists.txt
src/test/component1/CMakeLists.txt
src/test/component2/CMakeLists.txt

Для тестирования я использую Qt - однако я хочу убедиться, что если Qt (или какой-либо другой пакет, специфичный для теста) не найден), я просто пропущу пакет.

Я пытался

find_package(Qt4 QUIET COMPONENTS QtCore QtTestLib)
if (NOT QT4_FOUND)
    message(SEND_ERROR "Qt4 not found - skipping building tests")
endif (NOT QT4_FOUND)

но это не работает так, как я хочу, так как это все еще предотвращает генерацию Make-файлов. Единственный способ, которым я могу думать, это поместить все тело файла CMakeLists в тело условного.

Есть ли способ сказать "пропустить обработку оставшейся части этого CMakeLists"?

1 Ответ

7 голосов
/ 04 ноября 2009

Из CMake документация

  • return: возврат из каталога или функции.

    return()

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

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