この記事では、CMakeとは?から初歩的な使い方を紹介します。
本記事で使用している環境は以下です。
・Ubuntu 24.04 LTS
WindowsPCでUbuntuをインストールする方法は以下の記事で紹介しています。
CMakeとは
CMakeは、クロスプラットフォームのオープンソースビルドシステムで、ソフトウェアプロジェクトのビルドプロセスを管理するために使用されます。主にCやC++のプロジェクトで広く利用されており、プロジェクトの構成、ビルド、テストを簡素化するためのツールです。
- クロスプラットフォーム対応:Windows、Linux、macOSなど、複数のプラットフォームで動作し、プラットフォームに依存しないビルド設定を記述できる。
- ジェネレーター機能:Makefile、Ninjaビルドファイル、Visual Studioプロジェクトファイル、Xcodeプロジェクトファイルなど、さまざまなビルドシステムの設定ファイルを生成できる。
- モジュールシステム:外部ライブラリやパッケージの検出と設定が容易にできる。
CMakeは、その柔軟性、クロスプラットフォーム対応、広範なビルドシステムサポートにより、多くのプロジェクトで利用されています。MakeやAutotoolsなどのビルドツールと比べて、CMakeはより直感的で設定が簡単で、広範なサポートと標準化された設定が強みとなっています。
参考:CMake
CMakeのインストール
CMakeを利用するために、まずCMakeをインストールします。ターミナルを開き以下のコマンドでCMakeをインストールしてください。
sudo apt install cmake
以下のコマンドでインストールしたCMakeのバージョンを確認できます。
cmake --version
参考までに、私の環境はcmake version 3.28.3
です。
CMakeLists.txtの作成
今回のディレクトリ構造は以下です。
HelloWorld/
└── hello.cpp
hello.cppの中身は「Hello World!」を出力するだけの単純なコードです。
#include <iostream>
int main() {
std::cout << "Hello World!" << std::endl;
return 0;
}
まず、hello.cppと同じディレクトリにCMakeLists.txtを作成します。
HelloWorld/
├── CMakeLists.txt
└── hello.cpp
CMakeLists.txtには以下の内容を記述してください。
cmake_minimum_required(VERSION 3.10)
# プロジェクト名とバージョン
project(MyProject VERSION 1.0)
# 実行ファイルを生成する
add_executable(Hello hello.cpp)
CMake実行
CMakeをする時はビルド用のディレクトリを作成します。プロジェクトのルートディレクトリにbuild/ディレクトリを作成してください。
mkdir build
HelloWorld/
├── build/
├── CMakeLists.txt
└── hello.cpp
ビルドディレクトリに移動してCMakeを実行します。
cd build
cmake ..
Makefileがbuild/に生成されたので、build/で以下のコマンドを実行し、ビルドします。
make
build/にHelloという名前の実行ファイルが生成されているはずなので、実行してみましょう。
./Hello
「Hello World!」と出力されていればOKです。
最後に
今回はCMakeを使ったビルドを紹介しました。CMakeLists.txtのより詳しい書き方については別の記事で紹介しようと思います。