2.8. その他: CMakeを使ってビルド#

このドキュメントはCMakeを使ってソースコードからGroongaをビルドする方法を説明します。

2.8.1. 必要なソフトウェアのインストール#

以下は、GNU/Linux、UNIX、Windows向けの必要なソフトウェアの一覧です。

2.8.1.1. GNU/LinuxまたはUNIX#

ソースコードに含まれるsetup.shを実行してください。

groonga-14.1.1.tar.gzを展開した場合はgroonga-14.1.1/setup.shがそのスクリプトです。

コマンド実行例

$ groonga-14.1.1/setup.sh

setup.shはDebian GNU/Linux、Ubuntu、AlmaLinux、Amazon Linux 2023をサポートしています。

2.8.1.1.1. macOS#

Xcodeをインストールしてください。

ソースコードに含まれるsetup.shを実行してください。

groonga-14.1.1.tar.gzを展開した場合はgroonga-14.1.1/setup.shがそのスクリプトです。

コマンド実行例

$ groonga-14.1.1/setup.sh

2.8.1.2. Windows#

2.8.2. ソースコードのダウンロード#

packages.groonga.orgから最新のソースコードをダウンロードできます。

2.8.2.1. GNU/LinuxまたはUNIX#

$ wget https://packages.groonga.org/source/groonga/groonga-14.1.1.tar.gz
$ tar xvzf groonga-14.1.1.tar.gz

2.8.2.2. Windows#

最新のzipアーカイブをpackages.groonga.orgからダウンロードしてください。

その後、アーカイブを展開します。

2.8.3. cmake を実行#

Makefile のような、あなたの環境用のビルド用ファイルを作る必要があります。

cmake へオプションを渡してビルドパラメーターをカスタマイズできます。

GNU/Linux or UNIXでのコマンド例

$ cmake -S <Groonga source code directory path> -B <Build directory path> --preset=release-maximum
  • -Sオプション

    • Groongaのソースコードディレクトリを指定します

    • ダウンロードして展開したディレクトリを指定します

  • -Bオプション

    • ビルドディレクトリを指定します。

    • Groongaのソースコードディテクトリの外部にビルド専用のディレクトリを指定します

2.8.3.1. CMake プリセット#

CMakeの3.21.0以降を使うと、ビルド用の設定をまとめたプリセットが利用できます。よく使われるCMakeのオプションの組み合わせが用意してあるので、基本的にはそれらのプリセットをご利用ください。CMakeオプションは個別に設定したい場合にご利用ください。利用できるプリセットは cmake --list-presets で確認できます。

$ cmake --list-presets
Available configure presets:

  "debug-default"                   - Optional features may not be enabled (debug build)
  "release-default"                 - Optional features may not be enabled (release build)
  "release-with-debug-info-default" - Optional features may not be enabled (release build with debug info)
  "debug-maximum"                   - Enable all features (debug build)
  "release-maximum"                 - Enable all features (release build)
  "release-with-debug-info-maximum" - Enable all features (release build with debug info)
  "doc"                             - For documentation
  "memory-debug"                    - For memory debug
  "benchmark"                       - For benchmark

2.8.3.2. CMake オプション#

このセクションはCMakeの重要なオプションについて記載しています。

2.8.3.2.1. -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

2.8.3.2.2. -DCMAKE_INSTALL_PREFIX#

Groongaのインストール先のディレクトリ/フォルダを指定します。

デフォルトはシステムにより異なります。例えば、 /usr/localC:/Program Files/groonga です。

以下はGNU/LinuxまたはUNIXで /tmp/local/ をインストール先として指定する例です。

$ cmake . -DCMAKE_INSTALL_PREFIX="/tmp/local/"

以下はWindowsで C:\Groonga をインストール先として指定する例です。

> cmake . -DCMAKE_INSTALL_PREFIX="C:\Groonga"

2.8.3.2.3. -DGRN_WITH_MRUBY#

mrubyサポートを有効化します。

mrubyサポートを有効にすることで シャーディング プラグインと ruby_eval が使用可能になります。

デフォルトは OFF です。

mrubyサポートが有効な場合、Groongaは同梱しているmrubyをビルドします。そのため、mrubyをビルドするのに必要なライブラリをインストールする必要があります。詳細は mrubyのコンパイルガイド を参照してください。

以下はmrubyサポートを有効にする例です。

$ cmake . -DGRN_WITH_MRUBY=ON

2.8.3.2.4. -DGRN_WITH_DEBUG#

C/C++コンパイラーのデバッグオプションを有効にします。GDBやLLDBなどのデバッガーでデバッグするときに便利です。

デフォルトは OFF です。

以下はデバッグオプションを有効にする例です。

$ cmake . -DGRN_WITH_DEBUG=ON

2.8.3.2.5. -DGRN_WITH_APACHE_ARROW#

Apache Arrowサポートを有効化します。

Apache Arrowサポートを有効化すると、Apache ArrowのIPC streaming formatが使えるだけでなく、 n_workersquery_parallel_or でマルチスレッドで処理できるようになります。

デフォルトは OFF です。

Apache Arrowは 公式のドキュメントの手順 にしたがってインストールしてください。

以下はApache Arrowサポートを有効にする例です。

$ cmake . -DGRN_WITH_APACHE_ARROW=ON

注釈

Apache Arrowを手動でインストールしている場合、 -DCMAKE_PREFIX_PATH=PATHS オプションを指定してください。

2.8.3.2.6. -DCMAKE_PREFIX_PATH=PATHS#

.cmake ファイルの検索パスを追加します。

GNU/LinuxまたはUNIXでは : で、Windowsでは ; 区切ることで複数のパスを指定できます。

パッケージ管理システムを使用してインストールしたライブラリを使いたい場合は、 CMake のデフォルトの検索パスに .cmake ファイルが存在するためこのパラメータを指定する必要はありません。

/usrのようなシステム以外のディレクトリにインストールされたライブラリを使用する場合は、このパラメータでライブラリの .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"

2.8.4. ビルドおよびインストール#

これで、Groongaをビルドできるようになりました。

2.8.4.1. GNU/LinuxまたはUNIX#

以下はGroongaをビルド、インストールするコマンドラインです。

$ cmake --build -B <Build directory path>
$ sudo cmake --install -B <Build directory path>

2.8.4.2. Windows#

以下は -G "Visual Studio 17 2022" のようにジェネレーターでVisual Studioを指定したときの手順です。

Visual Studioか cmake --build を使用できます。

以下は cmake --build を使ってGroongaをビルド、インストールするコマンドラインです。

> cmake --build . --config Release
> cmake --build . --config Release --target Install

デバッグをする場合は、 --config Release の代わりに --config Debug を指定してください。