Сборка тестов с CMake без использования CTest

Вот что я хочу сделать:

  • Ввод make all создаст мою библиотеку и документацию для нее.
  • Typing make test соберет мою библиотеку (при необходимости), gtest, а затем мои тесты
  • Набрав make check запустит make test , если необходимо, а затем запустит исполняемый файл

На данный момент мне удалось заставить работать только первого. Проблема, с которой я сталкиваюсь, - это условное включение gtest.

Gtest использует CMake, что приятно, теоретически все, что мне нужно сделать, это включить каталог gtest с add_subdirectory , но тогда gtest всегда будет построено.

Моя структура сейчас такова:

CMakeLists.txt     (Here I add targets for doc and the library)
doc                (my doxygen docs)
include            (my headers)
lib                (where my compiled libraries go)
src                (where my .cpp files go)
test
    CMakeLists.txt (Here I add targets for gest and my tests)
    bin            (where the test executable will go)
    contrib        (where gtest is)
    src            (my tests)

Я пытаюсь понять, как добавить gtest в качестве зависимости к test -target, но не каждый раз создавать gtest.

I Меня действительно раздражает, и информации об изучении CMake практически нет, так что, если кто-нибудь знает какие-либо подробные учебники (свободно доступные в Интернете), это было бы здорово.

11
задан Nicklas A. 10 April 2011 в 04:03
поделиться