ROOTを組み込んだプロジェクトをcmakeで管理する

ROOTライブラリを使うと色々便利なので多用している。最近は直接Makefileを書いたりautotoolsを使ったりするよりも、cmakeを使うのが良いらしい。ROOT自体も6.08からcmakeでのビルドがメインになった。

ならば、ROOTを使うプロジェクトもcmakeで管理すれば良いのでは?と、cmake対応をすすめてみた。autotoolsのかわり?的な気分ではじめてみたが、確かに良い感じ。ccmakeのお世話になる程ではないけれど、Makefileとの分離が程良くできている。autotoolsはMakefileのテンプレートを用意し環境に応じてMakefileを作るが、cmakeはNiniaを吐き出す事も出来る。いくつかのIDE用プロジェクトファイルも作ってくれるし、まさにビルド支援ツール。

色々な環境に対応したMODULEを使えば、マルチプラットフォーム対応への壁も低くなりそう。

標準的なLinuxであれば、今までMakefileにかけた圧倒的にビルド環境構築にかかる時間が短かくなる。build-in-sourceが非推奨なのも、バージョン管理システムとの親和性が良い。特に意識せずに別ディレクトリでのビルドが可能。

ROOT用の設定はFindROOT.cmakeを使えば一発。使い方は

https://root.cern.ch/how/integrate-root-my-project-cmake

こちらにまとまっています。知らずに中身を見ても使える程度の内容なので、cmake初学者には良い教材かも。

忘れないうちに、メモ。