CMake: ビルドプロセスを自由自在! CMAKE_BUILD_TOOL と CMAKE_MAKE_PROGRAM の違いと使い分け


CMAKE_BUILD_TOOL は、CMake の古いバージョンで使用されていた変数です。 現在は CMake_MAKE_PROGRAM 変数に置き換えられ、互換性のためにのみ存在します。

この変数は、ビルドプロセスで使用されるメイクプログラムを指定するために使用されます。 メイクプログラムは、Makefile を解釈し、ソースコードのコンパイルとリンクを行うツールです。

詳細

  • 互換性
    CMake 3.22 以降
  • デフォルト値
    システムによって異なります
  • データ型
    文字列

使用方法

CMAKE_BUILD_TOOL 変数は、CMakeLists.txt ファイル内で以下の様に設定できます。

set(CMAKE_BUILD_TOOL "/path/to/make")

この例では、/path/to/make がビルドプロセスで使用されるメイクプログラムとして指定されます。

  • システムによっては、CMAKE_BUILD_TOOL 変数がデフォルトで設定されている場合があります。 詳細については、CMake のドキュメントを参照してください。
  • CMAKE_BUILD_TOOL 変数は、CMake_MAKE_PROGRAM 変数よりも古い方法です。 新しいプロジェクトでは、CMake_MAKE_PROGRAM 変数を使用することをお勧めします。
  • CMakeLists.txt ファイルは、CMake プロジェクトの構成を定義するために使用されます。 このファイルには、プロジェクトのソースコード、必要なライブラリ、ビルド設定などが指定されます。
  • メイクプログラムは、プラットフォームによって異なります。 一般的なメイクプログラムには、GNU Make、Ninja、MinGW Make などがあります。


cmake_minimum_required(VERSION 3.22)

project(myproject)

set(CMAKE_BUILD_TOOL "/usr/bin/make")

add_executable(myprogram main.cpp)

このコードは、以下のようになります。

  1. CMake の最小バージョンを 3.22 に設定します。
  2. プロジェクトの名前を myproject に設定します。
  3. CMAKE_BUILD_TOOL 変数を /usr/bin/make に設定します。
  4. main.cpp ファイルから myprogram という名前の実行可能ファイルを作成します。

サンプル 2: Ninja 使用

この例では、Ninja をビルドプロセスで使用するために CMAKE_BUILD_TOOL 変数を設定します。

cmake_minimum_required(VERSION 3.22)

project(myproject)

set(CMAKE_BUILD_TOOL "/path/to/ninja")

add_executable(myprogram main.cpp)

このコードは、サンプル 1 とほぼ同じですが、CMAKE_BUILD_TOOL 変数が Ninja のパスに設定されています。

サンプル 3: MinGW Make 使用 (Windows)

cmake_minimum_required(VERSION 3.22)

project(myproject)

set(CMAKE_BUILD_TOOL "C:/MinGW/bin/mingw32-make")

add_executable(myprogram main.cpp)

このコードは、サンプル 1 とほぼ同じですが、CMAKE_BUILD_TOOL 変数が MinGW Make のパスに設定されています。

  • メイクプログラムのパスは、システムによって異なります。 正しいパスを設定していることを確認してください。


CMAKE_BUILD_TOOL 変数は、CMake の古いバージョンで使用されていた変数です。 現在は CMake_MAKE_PROGRAM 変数に置き換えられ、互換性のためにのみ存在します。

代替方法

CMAKE_BUILD_TOOL 変数の代わりに、以下の方法を使用することができます。

  • CMake_MAKE_PROGRAM 変数
    これが、CMake 3.22 以降での推奨方法です。 この変数は、ビルドプロセスで使用されるメイクプログラムを指定するために使用されます。
set(CMAKE_MAKE_PROGRAM "/path/to/make")
  • 直接指定
    CMakeLists.txt ファイル内で、CMAKE_TOOLCHAIN_FILE 変数を使用して直接メイクプログラムを指定することもできます。
set(CMAKE_TOOLCHAIN_FILE "/path/to/toolchain.cmake")

/path/to/toolchain.cmake ファイルには、以下の内容を記述する必要があります。

cmake_minimum_required(VERSION 3.22)

set(CMAKE_MAKE_PROGRAM "/path/to/make")
  • システムによっては、CMAKE_BUILD_TOOL 変数がデフォルトで設定されている場合があります。 詳細については、CMake のドキュメントを参照してください。
  • CMAKE_MAKE_PROGRAM 変数は、CMAKE_BUILD_TOOL 変数よりも新しい方法です。 新しいプロジェクトでは、CMake_MAKE_PROGRAM 変数を使用することをお勧めします。