Я работаю с CMake Tutorial и проверяю с соответствующими файлами проекта и застреваю на шаге 4.
Инструкции добавляют эти строки в файл CMakeLists.txt верхнего уровня:
# does this system provide the log and exp functions?
include (CheckFunctionExists)
check_function_exists (log HAVE_LOG)
check_function_exists (exp HAVE_EXP)
Как уже отмечалось, это тривиальный тест, поскольку почти каждая система на планете имеет log
и exp
. Но это не удается. При генерации Makefiles я вижу
-- Looking for log
-- Looking for log - not found
-- Looking for exp
-- Looking for exp - not found
Если я копаю глубже, запустив cmake --trace
, я вижу следующие строки:
.../tutorial/src/CMakeLists.txt(19): include( CheckFunctionExists )
/usr/share/cmake/Modules/CheckFunctionExists.cmake(32): macro(CHECK_FUNCTION_EXISTS FUNCTION VARIABLE )
.../tutorial/src/CMakeLists.txt(20): check_function_exists(log HAVE_LOG )
/usr/share/cmake/Modules/CheckFunctionExists.cmake(33): if(HAVE_LOG MATCHES ^HAVE_LOG$ )
.../tutorial/src/CMakeLists.txt(21): check_function_exists(exp HAVE_EXP )
/usr/share/cmake/Modules/CheckFunctionExists.cmake(33): if(HAVE_EXP MATCHES ^HAVE_EXP$ )
В файле CheckFunctionExists.cmake
нет условия else
для этого теста. Я новичок в cmake, но тесты кажутся мне верными. Чего мне не хватает?
CentOS 7, cmake 2.8.12.2