2009-10-02 7 views
10

J'ai une structure de projet comme:Comment interrompre le traitement CMakeLists pour le répertoire courant

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

Pour les tests, j'utilise Qt - cependant, je veux vous assurer que si Qt (ou un autre test paquet -specific n'est pas trouvé) Je saute simplement le paquet.

J'ai essayé

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

mais cela ne fonctionne pas comme je veux car cela empêche encore la génération du Makefile. La seule façon que je peux penser est de mettre le corps entier du fichier CMakeLists dans le corps du conditionnel.

Existe-t-il un moyen de dire "ignorer le traitement de ce CMakeLists"?

Répondre

7

De l'CMake documentation

  • retour: Retour d'un répertoire ou une fonction.

    return()

retours à partir d'un répertoire ou une fonction. Lorsque cette commande est rencontrée, causé processus de la fonction en cours ou le répertoire à arrêter et le contrôle est retourner à l'appelant de la fonction, ou le répertoire parent le cas échéant. Notez qu'une macro n'est pas une fonction et ne gère pas de retour comme une fonction fait.

Questions connexes