autotools か CMake か

Ut Video Codec Suite を Linux (Unix) でも使える(ビルドできる)ようにすることを考えているわけですが、今時生の Makefile をフルに手書きしたくはありません。

今 Unix でポピュラーな Makefile 生成システムというと autotools (automake/autoconf) と CMake が考えられます。他にも SCons とかいろいろあるようですが、考えないことにします。(ググっても CMake と比較するとだいぶ少ないし)

configure.ac/Makefile.am は何度も書いたけど CMakeLists.txt を書いたことがない私の理解の範囲での、 CMake の autotools に対する利点と欠点は以下の通り。

利点
  • Windows でも普通に使えて Visual Studio 用のソリューション/プロジェクトファイルを生成できる。Mac でも同様に Xcode プロジェクトファイルを生成できる。(ただし、今回 CMake を Windows/Mac で使うつもりはない)
  • Visual Studio 2017 だと CMakeLists.txt を直接読み込むこともできる。(ただし、(ry
  • JetBrains の CLion だと CMakeLists.txt を直接読み込むことができる。
欠点
  • ビルドする環境に CMake 自体が必要で、CMake のバージョンが CMakeLists.txt で指定したバージョンより古い(CMakeLists.txt が CMake の新しい機能を使っている)と Makefile を生成できなかったりする。(autotools の場合はバージョンの影響を受けるのは configure スクリプトを生成する環境だけで、ビルドだけする人には影響がない)

さてどうしますかねぇ。

Trackback

no comment untill now

Add your comment now