記事の概要
著者がマルチプラットフォームで動作するC++のオープンソースソフトウェアを作るときに役に立ったCMakeの参考書を紹介します。
なお、著者がCMakeを積極的に触っていたのは2022年の話なので、この記事は2022年時点の情報です。
CMakeとは
C/C++をプラットフォーム間の差異を吸収してビルドしてくれるツールです。
CMake用のビルド設定ファイル(Visual Studioで言うソリューション、プロジェクトに対応するもの)を正しく書くと、様々なプラットフォームで同じコマンドを打つだけでビルドできるようになります。
つまり、C/C++をマルチプラットフォームで動かさなくてはならない人にとって、神ツールです。
なお、C/C++をマルチプラットフォームで動かす気がないならCMakeは要らないと思います。
参考書① An Introduction to Modern CMake
無料。
個人用のCMakeプロジェクトを作るくらいはできると思います。
無料なのでとりあえずこれを読んでみて、解決しなければ②を読むのが良いと思います。
参考書② Professional CMake: A Practical Guide
有料。
この本の内容をそのまま実践したらマルチプラットフォーム対応のCMakeのオープンソースプロジェクトを作ることができました(体験談)。
CMakeの使い方を周辺知識も織り交ぜながら網羅的に説明してくれます。加えて、説明が丁寧でわかりやすいです。(正直CMakeの公式Getting Startedにこの本の内容をそのまま書いてほしいくらいです。)
CMakeのアップデートが入ると改訂版を出してくれるのも偉いです。なお、1度購入すればその後の改訂版は無料でもらえるので安心してください。
雑談
CMakeは公式リファレンスがCMakeを分かっている人にしか分からないようにできています(要検証)。加えて、2022年時点だと適当に検索してヒットする日本語の記事にはまともなものがありませんでした(個人の感想)。ですので、上記参考書に出会うまでは地獄でした。
著者は上記参考書の回し者ではありませんが、この2つに救われたのに加え、これらにたどり着くまでがかなり大変だったのでこの記事を書きました。特に②のほうはStack overflowの何かの質問の返信に添えられてたリンクを踏んでたどり着いたんだったと思います。