Вот что я хочу сделать:
make all
создаст мою библиотеку и документацию для нее. 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 практически нет, так что, если кто-нибудь знает какие-либо подробные учебники (свободно доступные в Интернете), это было бы здорово.