Bonjour,
J'essaie actuellement d'écrire quelques tests unitaires à l'aide de cmake. J'ai néanmoins un problème d'include.
L'arborescence du projet à cette forme :
Ce que je désire c'est dans totoTest.cxx inclure toto.hCode:
1
2
3
4
5
6
7
8 ./sources ./sources/toto.h ./sources/toto.cxx ./sources/qt_ui ./sources/qt_ui/ui_toto.h ./tests ./tests/sources/ ./tests/sources/totoTest.cxx
dans le dossier ./tests/sources/CMakeLists.txt, j'écris donc quelque chose du genre
et dans totoTest.h :Code:
1
2
3
4
5
6 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/sources) IF(BUILD_TESTING) ADD_EXECUTABLE(totoTest totoTest.cxx) # TARGET_LINK_LIBRARIES(totoTest toto) ADD_TEST(NAME totoTest COMMAND totoTest ENDIF(BUILD_TESTING)
dans toto.hCode:#include "toto.h"
l'executable toto se compile bien.Code:#include "ui_toto.h"
En revanche, l'executable totoTest me dit que dans le fichier toto.h on ne trouve pas ui_toto.h
Le truc, c'est quand dans le dossier ./sources, j'ai un CMakeLists.txt qui wrap mes .h pour les lier aux .ui de QT.
S'agit-il de se débrouiller pour faire construire le toto.h à l'aide du makefile généré par le CMakeLists.txt du dossier ./sources, ou peut-on simplement squizzer ce problème en liant directement l'executable totoTest à l'objet toto.o (au quel cas quel include à mettre?)
Un autre point que je n'ai pas compris est le role de target_link_librairies qui, commentée ou pas, n'influence en rien le problème.
Merci!