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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Ce que je désire c'est dans totoTest.cxx inclure toto.h
dans le dossier ./tests/sources/CMakeLists.txt, j'écris donc quelque chose du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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)
et dans totoTest.h :
dans toto.h
l'executable toto se compile bien.
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!