現在、小さな 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
これは、多くのautotoolsプロジェクトがAFAIKで行っていることです。
コンパイラが必要なヘッダー ファイルを既にチェックし、リンカがライブラリ関数をチェックしているという事実にもかかわらず、私のコードでは、コンパイル フラグなどを適切に設定するために、configure 段階でこれらのチェックを実行する必要が#ifdef HAVE_FOOBAR
あります。
この場合、CMake でヘッダー/関数をチェックするベスト プラクティスは何ですか?