Как правильно проверить функцию с помощью CMake

при преобразовании из automake в cmake мне приходится переносить некоторые тесты на существование функций. Я не писал настройку.AC script, но я должен воспроизвести функциональность так близко, как показано ниже, поэтому, пожалуйста, не ругайте меня за эти проверки. Я должен их сделать.

Итак, я пытаюсь использовать модуль 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)

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

2 ответов


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

CHECK_FUNCTION_EXISTS(time HAVE_TIME_FUNCTION)

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


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

include(CheckFunctionExists)
check_function_exists(time HAVE_TIME_FUNCTION)