CMake を使ってみた 2019-01-17 (木) 21:33:20+09:00

ソフトウェア

timidity のプロジェクトの一つ、 osdn にある timidity++ 41版 というプロジェクトをローカルでビルドしようといろいろ試していて、やり方が分かった。

プロジェクトのルートフォルダごとに CMakeList.txt というファイルがあるので検索して見つけた CMake というツールを使うことで一発でビルド出来た。

最初 CMakeList.txt の中身を覗いてみたときに思ったのは、冬星の知っている Makefile の記述とはかけ離れてるなあ、ということだった。どちらかと言うと何かのスクリプト言語みたいな感じがした。

ビルドの仕方も、冬星の知っている make とは全然違っていた。 make の場合は、 make –f Makefile などとして Makefile を読み込ませればそのまま gcc なりのコンパイラが呼ばれビルドが始まったが、 CMake の場合はそうではなく、プロジェクトのルートフォルダに CMakeLise.txt があっても、そのフォルダで CMake CMakeList.txt などとしても何も起こらなかったが、「CMakeの使い方(その1)」を見て手順が分かった。

CMake でのビルドは:

  1. プロジェクトのルートフォルダ(プロジェクト用の CMakeList.txt が用意されている)で mkdir build などとして、ビルド用のフォルダを作る。
  2. 作ったフォルダに移動する。
  3. そのフォルダから cmake .. とする。

という不思議な手順で行う。こうすることでビルドが行われるかというと、実はそうではなくビルドは始まらない。 timdiity41 の場合、 Visual C++ 用のソリューションとプロジェクトが自動生成された。

そこで、 Visual C++ 用のソリューションをダブルクリックして Visual Studio を起動しソリューションを開いてやることで、ようやくビルドを開始することが出来た。

ここまで書いてから書くのもなんだが、つまり CMake は Visual Studio に対応しているということだ。(でなければこんなことができるはずがない。)また、 gcc にも対応しているらしい。 gcc の場合、上の手順の3まで行ったら make 用の Makefile が自動生成されるようだ。一言で言うと、 CMake は make の一種「ではなく」 Makefile などを自動生成するためのツール、ということだ。

キーワード: CMake timidity