cmake

cmakeはC++やFortranのプログラムでよく使用されているビルドツールの一つです。

cmakeで出来ること

  • プログラムのビルドを行うためのスクリプトの生成
    • cmake自体はプログラムのビルドを行うツール ではなく makeやVisual Studioのように実際にビルドコマンドを実行するプログラムの為のスクリプトを生成するためのツールです
  • システムにインストールされているライブラリを検索し、コンパイルオプションを生成する
    • 必要なライブラリをcmakeがインストールする事は出来ません

cmakeで出来ない事

  • cmakeはPythonやNode.jsにおけるpipnpm, yarnに対応するものではありません。
  • そもそもC++やFortranには配布用のパッケージ形式は無く、PyPIのようなレジストリもありません。
  • cmakeは必要なライブラリをインストールする事は出来ません。インストールされているライブラリを探してくるだけです。
  • ライブラリを探してくる方法は基本的にcmake本体に含まれるスクリプトにハードコードされています。

cmakeを使うべきか?

新しくC++のプロジェクトを始める

新規のC++プロジェクトにcmakeを使うのは良い考えですが、そもそも新たにC++プロジェクトを始めるのは良い考えではありません。 より環境の整った言語は多くあり、C++を使う事でこの本にあるような退屈な作業に多くの時間を取られることになります。

Autotoolsプロジェクト

Autotoolsはcmakeと同様にMakefileを生成するためのツールです。 既にAutotoolsで管理されているプロジェクトをcmakeに移行する場合、コストに見合う利益は得られない事が多いでしょう。

独自Makefile

多くのレガシーなプロジェクトでMakefileに足りない機構を実現するために独自の拡張が行われておりメンテナンス性を著しく下げています。 これらをcmakeに置き換える作業は非常に有益です。

Links