我目前正在将一个小型 C 项目从autotools转换为CMake。
在旧版本中configure.in
,我使用以下几行检查了每个头文件和库函数是否存在:
# Checks for header files
AC_HEADER_STDC
AC_CHECK_HEADERS([stdlib.h time.h math.h sys/stat.h errno.h unistd.h fcntl.h signal.h])
# Checks for library functions
AC_FUNC_FORK
AC_CHECK_FUNCS([time localtime mktime gmtime exit fork chdir atol signal])
AC_FUNC_STRFTIME
这是许多自动工具项目所做的 AFAIK。
尽管编译器已经检查了必要的头文件并且链接器检查了库函数,但我的代码仍然需要在配置阶段完成这些检查才能正确设置它的编译标志#ifdef HAVE_FOOBAR
等。
在这种情况下,使用 CMake 检查标头/函数的最佳做法是什么?