読み方 : シーメイク

CMake

概要

CMakeとは、ソフトウェアのビルド手順を記述し、各種開発環境向けのビルドファイルを自動生成するツール。C言語やC++言語を中心としたプログラムのビルドプロセスを管理するオープンソースのツールである。
CMakeのイメージ画像

CMake自体がコンパイルビルドを行うわけではなく、「CMakeLists.txt」と呼ばれる設定ファイルを読み込み、LinuxであればMakefileWindowsであればVisual StudioのプロジェクトファイルやNinja用ビルドファイルなど、各環境に対応したビルドファイルを生成する。開発者は一つの CMakeLists.txt を記述するだけで、複数のOSやコンパイラ統合開発環境­向けのビルド環境を用意できる。

CMakeLists.txt には、ビルド対象のソースファイル、生成する実行ファイルライブラリの名前、依存ライブラリ、コンパイルオプションなどを記述する。コンパイラライブラリの検出機能を備え、環境に応じた設定を自動的に調整することができる。外部ライブラリの取得や依存関係の解決を支援する機能も提供されている。

設定ファイルは独自のスクリプト言語で記述され、条件分岐や変数、関数の定義などが可能である。ビルドはソースディレクトリとは別のディレクトリで行う「アウトオブソースビルド」が標準的な運用で、「cmake -B build」コマンドでビルドディレクトリを生成し、「cmake --build build」コマンドコンパイルを実行する流れが一般的とされる。

CMakeはLLVMOpenCVQt、ROSなど様々な大規模オープンソースプロジェクトで採用されており、C++プロジェクトビルド管理ツールとして広く普及している。バージョン3系以降はターゲットベースの設定スタイルが推奨されており、target_include_directories() や target_link_libraries() を使った記述が現代的な書き方とされている。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。