2012-08-15 2 views
7

При преобразовании с automake на cmake мне нужно выполнить некоторые тесты для существования функции. Я не писал сценарий configure.ac, но мне нужно воспроизвести функциональность так близко, как следует, поэтому, пожалуйста, не надоедать мне об этих проверках. Я должен их сделать.Как правильно проверить функцию с помощью CMake

Итак, я пытаюсь использовать модуль CheckFunctionExists, чтобы проверить наличие функции времени (среди прочего). Вот код 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) 

Это терпит неудачу каждый раз, хотя я знаю, за то, что у меня есть время несильно (Дух). Я попытался заменить время на printf, и он все еще терпит неудачу. Есть ли какая-то настройка, которую я должен сделать, чтобы эта проверка работала правильно?

ответ

6

Вы должны удалить ,:

CHECK_FUNCTION_EXISTS(time HAVE_TIME_FUNCTION) 

В CMake, разделители пространства или точка с запятой, запятая является частью переменной.

+0

Вау, я не могу поверить, что я этого не понимал. Благодаря! Это фиксировало это – dusktreader

6

Включить стандартный модуль CMake CheckFunctionExists и удалить запятую в check_function_exists вызова:

include(CheckFunctionExists) 
check_function_exists(time HAVE_TIME_FUNCTION) 
+0

Включает (CheckFunctionExists) на самом деле в моем исходном коде, я просто скопировал/вставлял неправильное включение для этого сообщения. Это была запятая, спасибо – dusktreader

Смежные вопросы