ホーム > その他外部パッケージ > cmake

cmake: クロスプラットフォームビルドシステムジェネレーター

CMakeは、オペレーティングシステムやコンパイラに依存しないビルドシステムを生成するツールです。主にC、C++プロジェクトで使用され、Makefile、Visual Studioプロジェクト、Xcodeプロジェクトなど、さまざまなビルドファイルを生成できます。これにより、開発者は特定のIDEやビルドツールに依存せずにプロジェクトを管理・ビルドできます。

概要

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: グラフィックインターフェースで便利に設定

同じカテゴリのコマンド