「Linuxコマンド - CMake」の版間の差分

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動
(ページの作成:「== 概要 == CMakeとは、多様なプラットフォームでソースコードをビルドするためのツールである。<br> <br> ここでは、CMake向けに…」)
 
26行目: 26行目:
  cmake -DCMAKE_INSTALL_PREFIX=<インストールディレクトリ> <ソースコードがあるディレクトリ>  
  cmake -DCMAKE_INSTALL_PREFIX=<インストールディレクトリ> <ソースコードがあるディレクトリ>  
<br>
<br>
オプション設定を対話式に変更するには、ccmakeコマンドを使用する。<br>
オプション設定を対話式に変更する場合は、<code>ccmake</code>コマンドを使用する。<br>
ccmakeの操作方法は、画面下部に表示されている通りである。<br>
矢印キーもしくは[J]キー、[K]キーでカーソルが上下に移動すると、中段に選択中の変数の説明が表示される。<br>
[Enter]キーでその項目を編集して、[C]キーでConfigureを実行、[G]キーでGenerateを実行して、ccmakeを終了する。<br>
  ccmake <ソースコードがあるディレクトリ>
  ccmake <ソースコードがあるディレクトリ>
<br>
オプション設定をGUIに変更する場合は、buildディレクトリを作成して、その中で以下のコマンドを実行する。<br>
cmake-gui <ソースコードがあるディレクトリ>
<br><br>
== ビルドタイプの指定 ==
変数を通したプロジェクト設定の例として、デバッグ / リリース等のビルドタイプを指定する方法がある。<br>
この設定には、<code>CMAKE_BUILD_TYPE、CMAKE_CONFIGURATION_TYPES</code>という2つのキャッシュ変数が絡む。<br>
どちらを設定すべきかは、ジェネレータによって変わる。<br>
<br>
==== Makefile ====
ジェネレータがMakefileの場合、単一のビルドオプションしか保持できないので、Configure / Generate時にビルドタイプを指定する。<br>
ビルドタイプは、キャッシュ変数<code>CMAKE_BUILD_TYPE</code>に値を設定することで指定できる。<br>
cmake -DCMAKE_INSTALL_PREFIX=<インストールディレクトリ> -DCMAKE_BUILD_TYPE=Release <ソースコードがあるディレクトリ>
<br>
次に、生成されたMakefileを使用してビルドする。<br>
cmake --build .
<br>
CMakeでは、標準でDebug、Release、MinSizeRel、RelWithDebInfoの4種類のビルドタイプが用意されている。<br>
それぞれどのようなビルドオプションが採用されるかはコンパイラによって違うので、別途調べること。<br>
<br>
==== IDE ====
ジェネレータがVisual StudioやXcodeといったIDEの場合、プロジェクトファイルに複数のビルドタイプを保持できるので、<br>
Configure / Generate時にビルドタイプを指定する必要はない。<br>
cmake -DCMAKE_INSTALL_PREFIX=<インストールディレクトリ> <ソースコードがあるディレクトリ>
<br>
次に、ビルドの実行時に、どのビルドタイプを使用するかを指定する。<br>
cmake --build . --config Release
<br>
プロジェクトファイルに含めるビルドタイプを、<code>Release</code>と<code>RelWithDebInfo</code>の2つに限定する場合は、<br>
キャッシュ変数<code>CMAKE_CONFIGURATION_TYPES</code>に<code>Release;RelWithDebInfo</code>のように値を設定する。<br>
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:CentOS]][[カテゴリ:SUSE]]
[[カテゴリ:CentOS]][[カテゴリ:SUSE]]

2020年10月5日 (月) 16:29時点における版

概要

CMakeとは、多様なプラットフォームでソースコードをビルドするためのツールである。

ここでは、CMake向けに構築されたソースコードをコマンドラインからビルドする方法について記載する。


CMakeコマンドの基本

まず、ビルドするディレクトリを作成して、そのディレクトリに移動する。
ディレクトリを作成する理由は、ソースコードツリーがビルド時の生成ファイルで汚染されるのを防ぐためである。

mkdir build
cd build


以下のように、CMakeコマンドを実行する。
引数には、ソースコードのルートディレクトリ(CMakeLists.txtファイルがあるディレクトリ)を指定する。

cmake <ソースコードがあるディレクトリ> 


Makefileが作成されるので、それを使用してビルドを行う。

make -j 8
make install  # ただし、CMakeLists.txtファイルに設定が記述されていることが必要



オプションの指定

CMakeコマンドの実行時に、オプションを指定することが可能である。

例えば、インストールディレクトリを変更するには、以下のように実行する。

cmake -DCMAKE_INSTALL_PREFIX=<インストールディレクトリ> <ソースコードがあるディレクトリ> 


オプション設定を対話式に変更する場合は、ccmakeコマンドを使用する。
ccmakeの操作方法は、画面下部に表示されている通りである。
矢印キーもしくは[J]キー、[K]キーでカーソルが上下に移動すると、中段に選択中の変数の説明が表示される。
[Enter]キーでその項目を編集して、[C]キーでConfigureを実行、[G]キーでGenerateを実行して、ccmakeを終了する。

ccmake <ソースコードがあるディレクトリ>


オプション設定をGUIに変更する場合は、buildディレクトリを作成して、その中で以下のコマンドを実行する。

cmake-gui <ソースコードがあるディレクトリ>



ビルドタイプの指定

変数を通したプロジェクト設定の例として、デバッグ / リリース等のビルドタイプを指定する方法がある。
この設定には、CMAKE_BUILD_TYPE、CMAKE_CONFIGURATION_TYPESという2つのキャッシュ変数が絡む。
どちらを設定すべきかは、ジェネレータによって変わる。

Makefile

ジェネレータがMakefileの場合、単一のビルドオプションしか保持できないので、Configure / Generate時にビルドタイプを指定する。
ビルドタイプは、キャッシュ変数CMAKE_BUILD_TYPEに値を設定することで指定できる。

cmake -DCMAKE_INSTALL_PREFIX=<インストールディレクトリ> -DCMAKE_BUILD_TYPE=Release <ソースコードがあるディレクトリ> 


次に、生成されたMakefileを使用してビルドする。

cmake --build .


CMakeでは、標準でDebug、Release、MinSizeRel、RelWithDebInfoの4種類のビルドタイプが用意されている。
それぞれどのようなビルドオプションが採用されるかはコンパイラによって違うので、別途調べること。

IDE

ジェネレータがVisual StudioやXcodeといったIDEの場合、プロジェクトファイルに複数のビルドタイプを保持できるので、
Configure / Generate時にビルドタイプを指定する必要はない。

cmake -DCMAKE_INSTALL_PREFIX=<インストールディレクトリ> <ソースコードがあるディレクトリ> 


次に、ビルドの実行時に、どのビルドタイプを使用するかを指定する。

cmake --build . --config Release


プロジェクトファイルに含めるビルドタイプを、ReleaseRelWithDebInfoの2つに限定する場合は、
キャッシュ変数CMAKE_CONFIGURATION_TYPESRelease;RelWithDebInfoのように値を設定する。