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初学者には良い教材かも。
忘れないうちに、メモ。