2009-10-02 5 views
10

tengo una estructura de proyecto como:Cómo abortar CMakeLists de procesamiento para el directorio actual

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

Para la prueba, estoy usando Qt - sin embargo, yo quiero estar seguro de que si Qt (o alguna otra prueba -paquete específico no se encuentra) Simplemente omito el paquete.

me trataron

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

pero eso no funciona como yo quiero, ya que todavía impide la generación de los Makefile. La única forma en que puedo pensar es poner todo el cuerpo del archivo CMakeLists en el cuerpo del condicional.

¿Hay alguna manera de decir "omita el procesamiento del resto de este CMakeLists"?

Respuesta

7

Desde el CMake documentation

  • vuelta: la vuelta de un directorio o función.

    return()

La rentabilidad de un directorio o función. Cuando se encuentra este comando, provocó que el proceso de la función actual o el directorio se detenga y controle es devuelve a la persona que llama de la función, o el directorio principal, si lo hay. Observe que una macro no es una función y no maneja el retorno como lo hace una función .

Cuestiones relacionadas