2012-08-15 13 views
7

Al convertir de automake a cmake, tengo que realizar algunas pruebas para la existencia de funciones. No escribí el script configure.ac, pero tengo que reproducir la funcionalidad de la siguiente manera, así que no me critiquen por estas comprobaciones. Tengo que hacerlos.Cómo comprobar correctamente una función usando CMake

Por lo tanto, estoy tratando de usar el módulo CheckFunctionExists para verificar la existencia de la función de tiempo (entre otros). Aquí está el código cmake

include(CheckIncludeFiles) 

CHECK_FUNCTION_EXISTS(time, HAVE_TIME_FUNCTION) 

if(NOT HAVE_TIME_FUNCTION) 
    message(FATAL_ERROR "ERROR: required time function not found") 
endif(NOT HAVE_TIME_FUNCTION) 

Esta falla cada vez, aunque sé que es un hecho que tengo la funcion de tiempo (duh). Intenté reemplazar el tiempo con printf y todavía falla. ¿Hay alguna configuración que deba hacer para que esta verificación funcione correctamente?

Respuesta

6

debe quitar la ,:

CHECK_FUNCTION_EXISTS(time HAVE_TIME_FUNCTION) 

En CMake, separadores son espacios o puntos y comas, la coma es parte de la variable.

+0

Wow, no puedo creer que no haya entendido eso. ¡Gracias! Eso lo solucionó – dusktreader

6

Incluir el módulo estándar CMake CheckFunctionExists y quitar la coma en el check_function_exists invocación:

include(CheckFunctionExists) 
check_function_exists(time HAVE_TIME_FUNCTION) 
+0

include (CheckFunctionExists) estaba realmente en mi código original, solo copio/pegué el incorrecto include para esta publicación. Era la coma, gracias – dusktreader

Cuestiones relacionadas