概要
CMakeは、ソースコードのビルドプロセスを定義するCMakeLists.txtファイルを基に、ユーザーが選択したビルドツール(例:Make、Ninja)に対応したビルドスクリプトを生成します。これは、複雑なプロジェクトのビルドプロセスを標準化し、自動化するために不可欠です。
主な特徴
- クロスプラットフォーム対応 (Linux、Windows、macOSなど)
- 多様なビルドシステム生成 (Makefiles、Visual Studio、Xcodeなど)
- モジュール化されたプロジェクト管理が容易
- テストおよびパッケージング対応 (CTest、CPack)
主なオプション
CMakeコマンドを実行する際によく使用される主なオプションです。
基本設定
ビルドシステムジェネレーター
ビルドとインストール
情報
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`cmake` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
CMakeを使用してプロジェクトを設定しビルドする様々なシナリオです。
基本ビルド設定とMakefile生成
mkdir build
cd build
cmake ..
make
現在のディレクトリのソースを基に、「build」サブディレクトリにMakefileを生成します。
ソースおよびビルドディレクトリの明示的な指定
cmake -S /path/to/my_project_source -B /path/to/my_project_build
ソースディレクトリとビルドディレクトリを明確に指定してビルドファイルを生成します。
Ninjaジェネレーターの使用とリリースビルド
cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=Release
Ninjaビルドシステムを使用し、ビルドタイプをリリースに設定してビルドファイルを生成します。
CMake経由でのビルド実行
cmake --build build
生成されたビルドシステム(例: Makefile)を直接呼び出す代わりに、CMakeコマンドでビルドを実行します。
ビルドされたプロジェクトのインストール
cmake --install build
ビルドされたプロジェクトをシステムのデフォルトパス(例: /usr/local)にインストールします。
インストール
CMakeはほとんどのLinuxディストリビューションでデフォルトで提供されていないため、パッケージマネージャーを通じてインストールする必要があります。
Debian/Ubuntu
sudo apt update
sudo apt install cmake
APTパッケージマネージャーを使用してCMakeをインストールします。
Fedora/RHEL/CentOS
sudo dnf install cmake
DNFまたはYUMパッケージマネージャーを使用してCMakeをインストールします。
Arch Linux
sudo pacman -S cmake
Pacmanパッケージマネージャーを使用してCMakeをインストールします。
ヒントと注意点
CMakeを効果的に使用するためのヒントと注意点です。
アウトオブソースビルド
ソースコードディレクトリとビルドディレクトリを分離する「アウトオブソースビルド」を常に使用することが推奨されます。これにより、ソースディレクトリをクリーンに保ち、複数のビルド設定を簡単に切り替えることができます。
- ソースディレクトリの汚染防止
- 様々なビルド設定(Debug/Release)の同時管理が容易
CMakeLists.txtファイル
CMakeの核心は、プロジェクトのビルドルールを定義するCMakeLists.txtファイルです。このファイルの構文と構造を理解することが重要です。
- プロジェクトのルートディレクトリに配置
- サブディレクトリにも存在可能(add_subdirectoryコマンドでインクルード)
GUIツールの活用
複雑なCMakeプロジェクトの場合、「ccmake」(ターミナルベース)または「cmake-gui」(グラフィックベース)のようなツールを使用して、キャッシュ変数を視覚的に設定・管理できます。
- ccmake: ターミナルで対話的にキャッシュ変数を設定
- cmake-gui: グラフィックインターフェースで便利に設定