CMakeを使ってGroongaをビルドする方法#
このドキュメントはCMakeを使ってソースコードからGroongaをビルドする方法を説明します。
インストール にある特定環境用のドキュメントに、CMakeでビルドする際のその環境向けのより詳細な情報があります。特定環境用のドキュメントがある場合は、まずそちらを参照してください。
必要なソフトウェアのインストール#
以下は、GNU/Linux、UNIX、Windows向けの必要なソフトウェアの一覧です。
TODO
GNU/LinuxまたはUNIX#
Windows#
ソースコードのダウンロード#
packages.groonga.org から最新のソースコードをダウンロードできます。
GNU/LinuxまたはUNIX#
$ wget https://packages.groonga.org/source/groonga/groonga-14.0.9.tar.gz
$ tar xvzf groonga-14.0.9.tar.gz
Windows#
最新のzipアーカイブをpackages.groonga.orgからダウンロードしてください。
その後、アーカイブを展開します。
cmake
を実行#
Makefile
のような、あなたの環境用のビルド用ファイルを作る必要があります。
cmake
へオプションを渡してビルドパラメーターをカスタマイズできます。
CMake オプション#
このセクションはCMakeの重要なオプションについて記載しています。
-G GENERATOR
#
ジェネレータを指定します。
デフォルトはシステムよって異なります。
cmake --help
でデフォルトのジェネレータと、利用可能なジェネレータを確認することができます。
$ cmake --help
...
The following generators are available on this platform (* marks default):
Green Hills MULTI = Generates Green Hills MULTI files
(experimental, work-in-progress).
* Unix Makefiles = Generates standard UNIX makefiles.
Ninja = Generates build.ninja files.
Ninja Multi-Config = Generates build-<Config>.ninja files.
Watcom WMake = Generates Watcom WMake makefiles.
CodeBlocks - Ninja = Generates CodeBlocks project files.
CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
CodeLite - Ninja = Generates CodeLite project files.
CodeLite - Unix Makefiles = Generates CodeLite project files.
Eclipse CDT4 - Ninja = Generates Eclipse CDT 4.0 project files.
Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files.
Kate - Ninja = Generates Kate project files.
Kate - Unix Makefiles = Generates Kate project files.
Sublime Text 2 - Ninja = Generates Sublime Text 2 project files.
Sublime Text 2 - Unix Makefiles
以下はGNU/LinuxまたはUNIXで Unix Makefiles
をジェネレータに指定する例です。
$ cmake . -G "Unix Makefiles"
以下はWindowsで Visual Studio 17 2022 x64
をジェネレータに指定する例です。-A
オプションでプラットフォーム(アーキテクチャ)を指定できます。
> cmake . -G "Visual Studio 17 2022" -A x64
-DCMAKE_INSTALL_PREFIX
#
Groongaのインストール先のディレクトリ/フォルダを指定します。
デフォルトはシステムにより異なります。例えば、 /usr/local
や C:/Program Files/groonga
です。
以下はGNU/LinuxまたはUNIXで /tmp/local/` をインストール先として指定する例です。
$ cmake . -DCMAKE_INSTALL_PREFIX="/tmp/local/"
以下はWindowsで C:\Groonga
をインストール先として指定する例です。
> cmake . -DCMAKE_INSTALL_PREFIX="C:\Groonga"
-DGRN_WITH_MRUBY
#
mrubyサポートを有効化します。
mrubyサポートを有効にすることで シャーディング プラグインと ruby_eval が使用可能になります。
デフォルトは OFF
です。
mrubyサポートが有効な場合、Groongaは同梱しているmrubyをビルドします。そのため、mrubyをビルドするのに必要なライブラリをインストールする必要があります。詳細は mrubyのコンパイルガイド を参照してください。
以下はmrubyサポートを有効にする例です。
$ cmake . -DGRN_WITH_MRUBY=ON
-DGRN_WITH_DEBUG
#
C/C++コンパイラーのデバッグオプションを有効にします。GDBやLLDBなどのデバッガーでデバッグするときに便利です。
デフォルトは OFF
です。
以下はデバッグオプションを有効にする例です。
$ cmake . -DGRN_WITH_DEBUG=ON
-DGRN_WITH_APACHE_ARROW
#
Apache Arrowサポートを有効化します。
Apache Arrowサポートを有効化すると、Apache ArrowのIPC streaming formatが使えるだけでなく、 n_workers や query_parallel_or でマルチスレッドで処理できるようになります。
デフォルトは OFF
です。
Apache Arrowは 公式のドキュメントの手順 にしたがってインストールしてください。
以下はApache Arrowサポートを有効にする例です。
$ cmake . -DGRN_WITH_APACHE_ARROW=ON
注釈
Apache Arrowを手動でインストールしている場合、 -DCMAKE_PREFIX_PATH=PATHS オプションを指定してください。
-DCMAKE_PREFIX_PATH=PATHS
#
.cmake
ファイルの検索パスを追加します。
GNU/LinuxまたはUNIXでは :
で、Windowsでは ;
区切ることで複数のパスを指定できます。
パッケージ管理システムを使用してインストールしたライブラリを使いたい場合は、 CMake のデフォルトの検索パスに .cmake
ファイルが存在するためこのパラメータを指定する必要はありません。
使用してインストールしたライブラリを使いたい場合は、 CMake のデフォルトの検索パスに .cmake
ファイルが存在するためこのパラメータを指定する必要はありません。
以下はGNU/LinuxまたはUNIXで /tmp/arrow/cmake/arrowConfig.cmake
の .cmake
ファイルを指定する例です。
$ cmake . -DCMAKE_PREFIX_PATH="/tmp/local"
以下はWindowsで C:\arrow\lib\cmake\Arrow\ArrowConfig.cmake
の .cmake
ファイルを指定する例です。
> cmake . -DCMAKE_PREFIX_PATH="C:\arrow"
ビルドおよびインストール#
これで、Groongaをビルドできるようになりました。
GNU/LinuxまたはUNIX#
make
が使用できます。
以下は make
を使ってGroongaをビルド、インストールするコマンドラインです。
$ make -j$(nproc || PATH="/sbin:$PATH" sysctl -n hw.ncpu) > /dev/null
$ sudo make install
警告メッセージとエラーメッセージだけが見えるように make
時に > /dev/null
をつけることを推奨します。開発者は新しいコミットで警告メッセージもエラーメッセージも増やすべきではありません。
Windows#
Visual Studioか cmake --build
を使用できます。
以下は cmake --build
を使ってGroongaをビルド、インストールするコマンドラインです。
> cmake --build . --config Release
> cmake --build . --config Release --target Install
デバッグをする場合は、 --config Release
の代わりに --config Debug
を指定してください。