「Linuxコマンド - CMake」の版間の差分
67行目: | 67行目: | ||
プロジェクトファイルに含めるビルドタイプを、<code>Release</code>と<code>RelWithDebInfo</code>の2つに限定する場合は、<br> | プロジェクトファイルに含めるビルドタイプを、<code>Release</code>と<code>RelWithDebInfo</code>の2つに限定する場合は、<br> | ||
キャッシュ変数<code>CMAKE_CONFIGURATION_TYPES</code>に<code>Release;RelWithDebInfo</code>のように値を設定する。<br> | キャッシュ変数<code>CMAKE_CONFIGURATION_TYPES</code>に<code>Release;RelWithDebInfo</code>のように値を設定する。<br> | ||
<br><br> | |||
== CMakeのインストール == | |||
[https://cmake.org/download/ CMakeの公式Webサイト]にアクセスして、<br> | |||
cmake-<バージョン>.tar.gzファイル(ソースコード)またはcmake-<バージョン>-linux-x86_64.tar.gzファイル(バイナリ)をダウンロードする。<br> | |||
<br> | |||
==== バイナリファイルをインストールする場合 ==== | |||
cmake-<バージョン>-linux-x86_64.tar.gzファイル(バイナリ)をを解凍して、任意のインストールディレクトリに配置する。<br> | |||
tar xf cmake-<バージョン>-linux-x86_64.tar.gz | |||
mv cmake-3.22.1-linux-x86_64 CMake | |||
cp -r CMake <CMakeのインストールディレクトリ> | |||
<br> | |||
CMake GUIもインストールする場合、デスクトップエントリファイルを作成する。<br> | |||
vi ~/.local/share/applications/CMake_GUI.desktop | |||
<br> | |||
# ~/.local/share/applications/CMake_GUI.desktopファイル | |||
[Desktop Entry] | |||
Type=Application | |||
Version=1.0 | |||
Name=CMake | |||
Comment=Cross-platform buildsystem | |||
Exec=/<CMakeのインストールディレクトリ>/bin/cmake-gui %f | |||
Icon=/<CMakeのインストールディレクトリ>/share/icons/hicolor/128x128/apps/CMakeSetup | |||
Categories=Development; | |||
MimeType=application/x-cmakecache; | |||
Terminal=false | |||
X-MultipleArgs=false | |||
StartupNotify=true | |||
<br> | |||
~/.profileファイル等に環境変数PATHを追記する。<br> | |||
vi ~/.profile | |||
<br> | |||
# ~/.profileファイル | |||
export PATH="/<CMakeのインストールディレクトリ>/bin:$PATH" | |||
<br> | |||
==== ソースコードからインストールする場合 ==== | |||
cmake-<バージョン>.tar.gzファイル(ソースコード)を解凍する。<br> | |||
tar xf cmake-<バージョン>.tar.gz | |||
cd cmake-<バージョン> | |||
<br> | |||
ビルド用ディレクトリを作成する。<br> | |||
mkdir build && cd build | |||
<br> | |||
CMakeをビルドおよびインストールする。<br> | |||
# CMake GUIをインストールする場合 | |||
../configure --qt-gui --prefix=<CMakeのインストールディレクトリ> | |||
# CMake GUIをインストールしない場合 | |||
../configure --prefix=<CMakeのインストールディレクトリ> | |||
gmake -j $(nproc) | |||
gmake install | |||
<br> | |||
CMake GUIもインストールする場合、デスクトップエントリファイルを作成する。<br> | |||
vi ~/.local/share/applications/CMake_GUI.desktop | |||
<br> | |||
# ~/.local/share/applications/CMake_GUI.desktopファイル | |||
[Desktop Entry] | |||
Type=Application | |||
Version=1.0 | |||
Name=CMake | |||
Comment=Cross-platform buildsystem | |||
Exec=/<CMakeのインストールディレクトリ>/bin/cmake-gui %f | |||
Icon=/<CMakeのインストールディレクトリ>/share/icons/hicolor/128x128/apps/CMakeSetup | |||
Categories=Development; | |||
MimeType=application/x-cmakecache; | |||
Terminal=false | |||
X-MultipleArgs=false | |||
StartupNotify=true | |||
<br> | |||
~/.profileファイル等に環境変数PATHを追記する。<br> | |||
vi ~/.profile | |||
<br> | |||
# ~/.profileファイル | |||
export PATH="/<CMakeのインストールディレクトリ>/bin:$PATH" | |||
<br><br> | |||
== Extra CMake Module(ECM)のインストール == | |||
[https://github.com/KDE/extra-cmake-modules/tags Extra CMake ModuleのGithub]にアクセスして、ソースコードをダウンロードする。<br> | |||
ダウンロードしたファイルを解凍する。<br> | |||
tar xf extra-cmake-modules-<バージョン>.tar.gz | |||
cd extra-cmake-modules-<バージョン> | |||
<br> | |||
次に、Extra CMake Moduleのビルドに必要なライブラリをインストールする。<br> | |||
sudo zypper install sphinx libsphinxclient-devel reuse | |||
<br> | |||
ビルド用ディレクトリを作成して、Extra CMake Moduleをビルドおよびインストールする。<br> | |||
<u>Extra CMake ModuleのインストールディレクトリはCMakeのインストールディレクトリを共通であることに注意する。</u><br> | |||
mkdir build && cd build | |||
cmake -DCMAKE_INSTALL_PREFIX=<CMakeのインストールディレクトリ> .. | |||
make -j $(nproc) | |||
make install | |||
<br><br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:CentOS]][[カテゴリ:SUSE]] | [[カテゴリ:CentOS]][[カテゴリ:SUSE]] |
2021年12月24日 (金) 05:09時点における版
概要
CMakeとは、多様なプラットフォームでソースコードをビルドするためのツールである。
ここでは、CMake向けに構築されたソースコードをコマンドラインからビルドする方法について記載する。
CMakeコマンドの基本
まず、ビルドするディレクトリを作成して、そのディレクトリに移動する。
ディレクトリを作成する理由は、ソースコードツリーがビルド時の生成ファイルで汚染されるのを防ぐためである。
mkdir build cd build
以下のように、CMakeコマンドを実行する。
引数には、ソースコードのルートディレクトリ(CMakeLists.txtファイルがあるディレクトリ)を指定する。
cmake <ソースコードがあるディレクトリ>
Makefileが作成されるので、それを使用してビルドを行う。
make -j 8 make install # ただし、CMakeLists.txtファイルに設定が記述されていることが必要
オプションの指定
CMakeコマンドの実行時に、オプションを指定することが可能である。
インストールディレクトリを指定するには、以下のオプションを付加する。
cmake -DCMAKE_INSTALL_PREFIX=<インストールディレクトリ> <ソースコードがあるディレクトリ> または cmake --install <インストールディレクトリ>
CコンパイラまたはC++コンパイラを変更するには、以下のオプションを付加する。
cmake -DCMAKE_C_COMPILER=<Cコンパイラのパス> -DCMAKE_CXX_COMPILER=<C++コンパイラのパス> <ソースコードがあるディレクトリ>
オプション設定を対話式に変更する場合は、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
プロジェクトファイルに含めるビルドタイプを、Release
とRelWithDebInfo
の2つに限定する場合は、
キャッシュ変数CMAKE_CONFIGURATION_TYPES
にRelease;RelWithDebInfo
のように値を設定する。
CMakeのインストール
CMakeの公式Webサイトにアクセスして、
cmake-<バージョン>.tar.gzファイル(ソースコード)またはcmake-<バージョン>-linux-x86_64.tar.gzファイル(バイナリ)をダウンロードする。
バイナリファイルをインストールする場合
cmake-<バージョン>-linux-x86_64.tar.gzファイル(バイナリ)をを解凍して、任意のインストールディレクトリに配置する。
tar xf cmake-<バージョン>-linux-x86_64.tar.gz mv cmake-3.22.1-linux-x86_64 CMake cp -r CMake <CMakeのインストールディレクトリ>
CMake GUIもインストールする場合、デスクトップエントリファイルを作成する。
vi ~/.local/share/applications/CMake_GUI.desktop
# ~/.local/share/applications/CMake_GUI.desktopファイル [Desktop Entry] Type=Application Version=1.0 Name=CMake Comment=Cross-platform buildsystem Exec=/<CMakeのインストールディレクトリ>/bin/cmake-gui %f Icon=/<CMakeのインストールディレクトリ>/share/icons/hicolor/128x128/apps/CMakeSetup Categories=Development; MimeType=application/x-cmakecache; Terminal=false X-MultipleArgs=false StartupNotify=true
~/.profileファイル等に環境変数PATHを追記する。
vi ~/.profile
# ~/.profileファイル export PATH="/<CMakeのインストールディレクトリ>/bin:$PATH"
ソースコードからインストールする場合
cmake-<バージョン>.tar.gzファイル(ソースコード)を解凍する。
tar xf cmake-<バージョン>.tar.gz cd cmake-<バージョン>
ビルド用ディレクトリを作成する。
mkdir build && cd build
CMakeをビルドおよびインストールする。
# CMake GUIをインストールする場合 ../configure --qt-gui --prefix=<CMakeのインストールディレクトリ> # CMake GUIをインストールしない場合 ../configure --prefix=<CMakeのインストールディレクトリ> gmake -j $(nproc) gmake install
CMake GUIもインストールする場合、デスクトップエントリファイルを作成する。
vi ~/.local/share/applications/CMake_GUI.desktop
# ~/.local/share/applications/CMake_GUI.desktopファイル [Desktop Entry] Type=Application Version=1.0 Name=CMake Comment=Cross-platform buildsystem Exec=/<CMakeのインストールディレクトリ>/bin/cmake-gui %f Icon=/<CMakeのインストールディレクトリ>/share/icons/hicolor/128x128/apps/CMakeSetup Categories=Development; MimeType=application/x-cmakecache; Terminal=false X-MultipleArgs=false StartupNotify=true
~/.profileファイル等に環境変数PATHを追記する。
vi ~/.profile
# ~/.profileファイル export PATH="/<CMakeのインストールディレクトリ>/bin:$PATH"
Extra CMake Module(ECM)のインストール
Extra CMake ModuleのGithubにアクセスして、ソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。
tar xf extra-cmake-modules-<バージョン>.tar.gz cd extra-cmake-modules-<バージョン>
次に、Extra CMake Moduleのビルドに必要なライブラリをインストールする。
sudo zypper install sphinx libsphinxclient-devel reuse
ビルド用ディレクトリを作成して、Extra CMake Moduleをビルドおよびインストールする。
Extra CMake ModuleのインストールディレクトリはCMakeのインストールディレクトリを共通であることに注意する。
mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=<CMakeのインストールディレクトリ> .. make -j $(nproc) make install