私は現在、小さなCプロジェクトをautotoolsからCMakeに変換しています。古いconfigure.in
でAutotoolsで行われているように、CMakeのヘッダファイルとライブラリ関数をチェックするには?
私は、次の行を使用して存在するために、すべてのヘッダとライブラリの機能をチェックする:
# 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のプロジェクトは、私の知る限りを行うものです。
コンパイラが既に必要なヘッダファイルをチェックしていて、リンカがライブラリ関数をチェックしているにもかかわらず、私のコードではコンフィグレーションステージでこれらのチェックを行う必要があり、#ifdef HAVE_FOOBAR
などのコンパイルフラグを正しく設定する必要があります。
この場合、CMakeでヘッダー/関数をチェックするベストプラクティスは何ですか?