2009-10-02 13 views
10

Ho una struttura di progetto come:Come interrompere CMakeLists di elaborazione per la directory corrente

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

Per la sperimentazione, sto usando Qt - tuttavia, voglio fare in modo che, se Qt (o qualche altro test -pacchetto specifico non trovato) Salto semplicemente il pacchetto.

ho cercato

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

ma che non funziona come voglio dato che impedisce ancora la generazione del Makefile. L'unico modo che posso pensare è di mettere l'intero corpo del file CMakeLists nel corpo del condizionale.

C'è un modo per dire "saltare l'elaborazione del resto di questo CMakeLists"?

risposta

7

Dal CMake documentation

  • ritorno: ritorno da una directory o una funzione.

    return()

ritorni da una directory o una funzione. Quando viene rilevato questo comando, è causato processo della funzione corrente o directory per arrestare e il controllo è ritorno al chiamante della funzione, o la directory superiore se presente. Nota che una macro non è una funzione e non gestisce il ritorno come una funzione .

Problemi correlati