GDAL のソースからのビルド

ビルド要件

GDAL をビルドするための最小要件は次のとおりです:

  • CMake >= 3.16, および関連するビルドシステム (make, ninja, Visual Studio, など)

  • C99 コンパイラ

  • GDAL 3.9 以降は C++17 コンパイラ (以前のバージョンでは C++11)

  • PROJ >= 6.3.1

GDAL テストスイートを実行するための追加要件は次のとおりです:

  • 他のプログラミング言語へのバインディングをビルドするための SWIG >= 4

  • Python >= 3.8

  • autotest/requirements.txt にリストされた Python パッケージ

多くのビルドには SQLite3, expat, libcurl, zlib, libtiff, libgeotiff, libpng, libjpeg などのオプションライブラリが強く推奨されます.オプションドライバの依存関係については, ラスタードライバー および ベクタードライバー ページを参照してください.

CMake (GDAL バージョン >= 3.5.0)

バージョン 3.5.0 以降, GDAL は CMake ビルドシステムを使用してビルドできます.CMake ビルドシステムを使用すると, ほぼすべてのプラットフォームで GDAL をコンパイルおよびインストールできます. ソース配布アーカイブを展開した後 (またはリポジトリをクローンした後) ソースツリーに移動します:

cd gdal-{VERSION}

ビルドディレクトリを作成し, そのディレクトリに移動します:

mkdir build
cd build

ビルドディレクトリから CMake を設定し, バイナリをビルドおよびインストールできます:

cmake ..
cmake --build .
cmake --build . --target install

注釈

最小限のビルドの場合, 初期の cmake コマンドにこれらのオプションを追加します: -DGDAL_BUILD_OPTIONAL_DRIVERS=OFF -DOGR_BUILD_OPTIONAL_DRIVERS=OFF. 特定のドライバを有効にするには, -DGDAL_ENABLE_DRIVER_<driver_name>=ON または -DOGR_ENABLE_DRIVER_<driver_name>=ON を追加します. 詳細については, ドライバーの選択 を参照してください.

注釈

CMake (>= 3.14) の --prefix /installation/prefix オプションは GDAL 3.7.0 以降でサポートされていますが, 設定時に CMAKE_INSTALL_PREFIX を設定するのとは異なり, GDAL_DATA パスが libgdal バイナリにハードコードされないため, お勧めできません. また, Windows のマルチ構成ジェネレータ (VisualStudio など) ではサポートされていません.

依存関係がカスタムの場所にインストールされている場合, include ディレクトリとライブラリへのパスを指定します:

cmake -DSQLite3_INCLUDE_DIR=/opt/SQLite/include -DSQLite3_LIBRARY=/opt/SQLite/lib/libsqlite3.so ..

または, カスタムプレフィックスを指定できます:

cmake -DCMAKE_PREFIX_PATH=/opt/SQLite ..

Windows でのパスはスラッシュも使用することが強く推奨されます (時には強制的に), 例えば: c:/path/to/include.

ワイルドカードを使用して, cmake の -U スイッチを使用して既存のキャッシュ変数を解除できます. たとえば:

cmake .. -UGDAL_USE_*

依存関係の設定を ConfigUser.cmake ファイルにまとめ, -C オプションを使用してそれを使用できます. ファイルには CACHE オプションを使用する set() コマンドが含まれています. たとえば, 共有ライブラリの異なる名前を設定できます. 例: set (GDAL_LIB_OUTPUT_NAME gdal_x64 CACHE STRING "" FORCE):

cmake .. -C ConfigUser.cmake

警告

依存関係を追加/変更/削除するために GDAL を設定する際に反復する場合, 一部のキャッシュ変数は前回の実行から CMakeCache.txt に残り, 新しい設定と競合する可能性があります. cmake 実行中に奇妙なエラーが発生した場合, CMakeCache.txt を削除してクリーンな状態から開始することができます.

CMake プロジェクトで GDAL を使用する方法については, Cmake プロジェクトでの GDAL の利用 を参照してください.

Windows でのビルド

Windows では, ジェネレータを指定する必要があるかもしれません:

cmake -G "Visual Studio 15 2017" ..

MacOS でのビルド

MacOS では, GDAL ビルド要件が Homebrew を使用してインストールされている場合, 正常に機能しないライブラリがいくつかあります.

現在の Homebrew ディストリビューションに含まれている Apache Arrow ライブラリは壊れており, 検出問題を引き起こします. GDAL を正常にビルドするためには, CMake を設定して Arrow パッケージを見つけないようにします:

cmake -DCMAKE_DISABLE_FIND_PACKAGE_Arrow=ON ..

同様に, 最近の Homebrew のバージョンでは, Boost が libkml とバンドルされなくなり, Boost ヘッダーが見つからないため, MacOS でビルドする際に libkml を無効にするか, Boost を手動でインストールする必要があります:

cmake -DGDAL_USE_LIBKML=OFF ..

CMake 一般的な設定オプション

CMake を設定するためのオプションは -D<var>=<value> を使用して提供されます. ビルドディレクトリから cmake -LAH を使用してすべてのキャッシュエントリを表示できます.

BUILD_APPS=ON

アプリケーションをビルドします. デフォルトは ON です.

BUILD_SHARED_LIBS

GDAL ライブラリを共有してビルドします. デフォルトは ON です. BUILD_SHARED_LIBS の CMake ドキュメントも参照してください.

CMAKE_BUILD_TYPE

ビルドの種類を選択します. オプションは: None (デフォルト), Debug, Release, RelWithDebInfo, または MinSizeRel です. CMAKE_BUILD_TYPE の CMake ドキュメントも参照してください.

注釈

構成時に -DCMAKE_BUILD_TYPE=Release (または類似のもの) を指定しない場合, デフォルトのビルドは最適化されません. または, CMake マルチ構成ビルドツールで --config Release を指定することで最適化されます (以下の例を参照).

CMAKE_C_COMPILER

C コンパイラ. Visual Studio などの一部のジェネレータでは無視されます.

CMAKE_C_FLAGS

すべてのビルドタイプで使用される C コンパイラによって使用されるフラグ. これは CFLAGS 環境変数によって初期化されます.

CMAKE_CXX_COMPILER

C++ コンパイラ. Visual Studio などの一部のジェネレータでは無視されます.

CMAKE_CXX_FLAGS

すべてのビルドタイプで使用される C++ コンパイラによって使用されるフラグ. これは CXXFLAGS 環境変数によって初期化されます.

CMAKE_INSTALL_PREFIX

ソフトウェアをインストールする場所. Unix のデフォルトは /usr/local/ です.

CMAKE_PREFIX_PATH

外部依存関係を検索する際に検索されるインストールプレフィックスを指定するディレクトリのリスト.

CMake 3.12 以降, 特定のパッケージのプレフィックスを定義するために <Packagename>_ROOT 変数を使用することもできます. 詳細については, https://cmake.org/cmake/help/latest/release/3.12.html?highlight=root#commands を参照してください.

CMAKE_UNITY_BUILD=OFF

Added in version 3.9.

デフォルトは OFF です. GDAL をビルドするために https://cmake.org/cmake/help/latest/variable/CMAKE_UNITY_BUILD.html 機能を使用するために ON に設定できます. これにより GDAL ビルド時間が短縮されます. この機能は現在も実験的なものと見なされており, 微妙なバグを隠している可能性があります (ただし, 現時点では私たちはそのようなバグを認識していません). ミッションクリティカルなビルドにはお勧めしません.

ENABLE_IPO=OFF

利用可能な場合, コンパイラの interprocedural optimization (IPO) を使用してライブラリをビルドします. デフォルトは OFF です.

GDAL_SET_INSTALL_RELATIVE_RPATH=OFF

インストールされたバイナリの rpath がライブラリへの相対パスとして書き込まれるように設定します. このオプションは CMAKE_INSTALL_RPATH 変数をオーバーライドし, CMAKE_SKIP_INSTALL_RPATH 変数が設定されていないことを前提としています.

Resource files embedding

Starting with GDAL 3.11, if a C23-compatible compiler is used, such as clang >= 19 or GCC >= 15, it is possible to embed resource files inside the GDAL library, without relying on resource files to be available on the file system (such resource files are located through an hard-coded path at build time in ${CMAKE_INSTALL_PREFIX}/share/gdal, or at run-time through the GDAL_DATA configuration option).

The following CMake options control that behavior:

EMBED_RESOURCE_FILES=ON/OFF

Added in version 3.11.

Default is OFF for shared library builds (BUILD_SHARED_LIBS=ON), and ON for static library builds (BUILD_SHARED_LIBS=OFF). When ON, resource files needed by GDAL will be embedded into the GDAL library and/or relevant plugins.

USE_ONLY_EMBEDDED_RESOURCE_FILES=ON/OFF

Added in version 3.11.

Even if EMBED_RESOURCE_FILES=ON, GDAL will still try to locate resource files on the file system by default , and fallback to the embedded version if not found. By setting USE_ONLY_EMBEDDED_RESOURCE_FILES=ON, no attempt at locating resource files on the file system is made. Default is OFF.

CMake パッケージ依存オプション

一般的に, パッケージ (外部依存関係) は, CMake が使用するデフォルトの場所にある場合に自動的に見つかります. これは CMAKE_PREFIX_PATH 変数などで調整することもできます.

CMake 3.12 以降, 特定のパッケージのプレフィックスを定義するために <Packagename>_ROOT 変数を使用することもできます. 詳細については, https://cmake.org/cmake/help/latest/release/3.12.html?highlight=root#commands を参照してください. _ROOT, _INCLUDE_DIR, _LIBRARY 変数についてはパッケージ名の大文字と小文字が重要であることに注意してください.

見つかる依存関係のほとんどは, 次のオプションを設定することで無効にすることもできます:

GDAL_USE_<Packagename_in_upper_case>:BOOL=ON/OFF

見つかった依存関係を GDAL ビルドに使用できるかどうかを制御します.

次のオプションを OFF に設定することで, GDAL に対して外部依存関係 (必須の PROJ 以外のもの) の使用をデフォルトで無効にすることもできます. 個々のライブラリは, GDAL_USE_<Packagename_in_upper_case>:BOOL=ON で明示的に有効にする必要があります.

GDAL_USE_EXTERNAL_LIBS:BOOL=ON/OFF

デフォルトは ON です. OFF に設定すると, GDAL_USE_<Packagename_in_upper_case>:BOOL=ON で個別に有効にされていない限り, すべての外部依存関係 (ただし必須のもの) が無効になります. このオプションは CMakeCache.txt が作成される前に設定する必要があります. CMakeCache.txt が作成された後に OFF に設定された場合, 以前に検出されたライブラリの有効化をキャンセルするために "-UGDAL_USE_*" で cmake を再起動する必要があります.

GDAL の依存関係の一部 (GEOTIFF, GIF, JPEG, JSONC, LERC, OPENCAD, PNG, QHULL, TIFF, ZLIB) には, GDAL ソースコードツリー内にそのソースコードのコピーが含まれています. GDAL_USE_<Packagename_in_upper_case>_INTERNAL:BOOL=ON 変数を設定することで, この内部コピーを有効にすることができます. 設定された場合, これは検出された外部ライブラリよりも優先されます. 次の変数でも動作をグローバルに制御できます:

GDAL_USE_INTERNAL_LIBS=ON/OFF/WHEN_NO_EXTERNAL

内部ライブラリがどのように使用されるかを制御します. ON に設定すると, それらは常に使用されます. OFF に設定すると, それらは使用されません (GDAL_USE_<Packagename_in_upper_case>_INTERNAL:BOOL=ON で個別に有効にされていない限り). WHEN_NO_EXTERNAL (デフォルト値) に設定すると, 対応する外部ライブラリが見つからず有効にされていない場合のみ使用されます. このオプションは CMakeCache.txt が作成される前に設定する必要があります.

注釈

GDAL_USE_EXTERNAL_LIBS=OFF と GDAL_USE_INTERNAL_LIBS=OFF を一緒に使用すると, 次のライブラリ (外部依存関係としても, 内部コピーとしても) が少なくとも必要であるため, CMake 構成エラーが発生します: ZLIB, TIFF, GEOTIFF, JSONC. したがって, それらを外部または内部ライブラリとして有効にする必要があります.

アーカイブ

libarchive は, 様々なアーカイブおよび圧縮形式をサポートするライブラリです. GDAL 3.7 以降, /vsi7z/ 仮想ファイルシステムを有効にするために使用されるかもしれません.

ARCHIVE_INCLUDE_DIR

archive.h ヘッダーファイルを含む include ディレクトリへのパス.

ARCHIVE_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_ARCHIVE=ON/OFF

libarchive を使用するかどうかを制御します. libarchive が見つかった場合, デフォルトは ON です.

Armadillo

Armadillo C++ ライブラリは, Thin Plate Spline 変換器に関連する計算を高速化するために使用されます. 詳細については, https://cmake.org/cmake/help/latest/module/FindArmadillo.html を参照してください. Conda-Forge 依存関係を使用した Windows ビルドの場合, 次のパッケージもインストールする必要があるかもしれません: blas blas-devel libblas libcblas liblapack liblapacke

GDAL_USE_ARMADILLO=ON/OFF

Armadillo を使用するかどうかを制御します. Armadillo が見つかった場合, デフォルトは ON です.

Arrow

Apache Arrow C++ ライブラリは, (Geo)Arrow IPC File Format / Stream および (Geo)Parquet ドライバに必要です. CMAKE_PREFIX_PATH 変数でインストールプレフィックスを指定します.

GDAL_USE_ARROW=ON/OFF

Arrow を使用するかどうかを制御します. Arrow が見つかった場合, デフォルトは ON です.

ARROW_USE_STATIC_LIBRARIES=ON/OFF

静的にビルドされた Arrow ライブラリを使用するかどうかを制御します. Arrow が見つかった場合, デフォルトは OFF です.

basisu

Basis Universal <https://github.com/rouault/basis_universal/tree/cmake> ライブラリは, BASISU -- Basis Universal および KTX2 ドライバに必要です. インストールプレフィックスを CMAKE_PREFIX_PATH 変数または basisu_ROOT 変数で指定します.

GDAL_USE_BASISU=ON/OFF

basisu を使用するかどうかを制御します. basisu が見つかった場合, デフォルトは ON です.

Blosc

Blosc は, 異なるバックエンド (LZ4, Snappy, Zlib, Zstd など) を持つメタ圧縮を提供するライブラリです. Zarr ドライバで使用されます.

BLOSC_INCLUDE_DIR

blosc.h ヘッダーファイルを含む include ディレクトリへのパス.

BLOSC_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_BLOSC=ON/OFF

Blosc を使用するかどうかを制御します. Blosc が見つかった場合, デフォルトは ON です.

BRUNSLI

Brunsli JPEG リパッキングライブラリは, MRF -- Meta Raster Format ドライバで使用されます.

BRUNSLI_INCLUDE_DIR

brunsli/decode.h および brunsli\encode.h ヘッダーファイルを含む include ディレクトリへのパス.

BRUNSLI_ENC_LIB

brunslienc-c ライブラリファイルへのパス.

BRUNSLI_DEC_LIB

brunslidec-c ライブラリファイルへのパス.

GDAL_USE_BRUNSLI=ON/OFF

BRUNSLI を使用するかどうかを制御します. Brunsli が見つかった場合, デフォルトは ON です.

CFITSIO

C FITS I/O ライブラリは, FITS -- Flexible Image Transport System ドライバに必要です. pkg-config で検出できます.

CFITSIO_INCLUDE_DIR

fitsio.h ヘッダーファイルを含む include ディレクトリへのパス.

CFITSIO_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_CFITSIO=ON/OFF

CFITSIO を使用するかどうかを制御します. CFITSIO が見つかった場合, デフォルトは ON です.

Crnlib

Crnlib / crunch は, DDS -- DirectDraw Surface ドライバに必要です.

Crnlib_INCLUDE_DIR

crunch/crnlib.h ヘッダーを含む Crnlib include ディレクトリへのパス.

Crnlib_LIBRARY

リンクする Crnlib ライブラリへのパス.

GDAL_USE_CRNLIB=ON/OFF

Crnlib を使用するかどうかを制御します. Crnlib が見つかった場合, デフォルトは ON です.

CURL

libcurl はすべてのネットワークアクセス (HTTP など) に必要です.

CURL_INCLUDE_DIR

curl ディレクトリを含む include ディレクトリへのパス.

CURL_LIBRARY_RELEASE

libcurl.so, libcurl.lib などの共有または静的ライブラリファイルへのパス.

CURL_USE_STATIC_LIBS=ON/OFF

Added in version 3.7.1.

Curl の静的ビルドにリンクする場合は, 必ず ON に設定する必要があります.

GDAL_USE_CURL=ON/OFF

Curl を使用するかどうかを制御します. Curl が見つかった場合, デフォルトは ON です.

CryptoPP

Crypto++ ライブラリは, Google Cloud の一部の認証方法で使用される RSA SHA256 署名機能に使用できます. EEDAI - Google Earth Engine Data API Image 画像を使用するか, /vsigs/ 仮想ファイルシステムを使用する場合に必要かもしれません. /vsicrypt/ 仮想ファイルシステムにも必要です.

CRYPTOPP_INCLUDE_DIR

ベース include ディレクトリへのパス.

CRYPTOPP_LIBRARY_RELEASE

共有または静的ライブラリファイルへのパス. デバッグリリース用の類似のライブラリに対しても, CRYPTOPP_LIBRARY_DEBUG という類似の変数を指定できます.

CRYPTOPP_USE_ONLY_CRYPTODLL_ALG=ON/OFF

デフォルトは OFF です. cryptopp.dll にリンクする場合は, 必ず ON に設定する必要があるかもしれません.

GDAL_USE_CRYPTOPP=ON/OFF

CryptoPP を使用するかどうかを制御します. CryptoPP が見つかった場合, デフォルトは ON です.

Deflate

libdeflate は, 損失のない Deflate/Zip 圧縮アルゴリズムを提供する圧縮ライブラリです. ZLib よりも高速なパフォーマンスを提供しますが, ZLib の完全な置換ではないため, ZLib の補完として使用する必要があります.

Deflate_INCLUDE_DIR

libdeflate.h ヘッダーファイルを含む include ディレクトリへのパス.

Deflate_LIBRARY_RELEASE

共有または静的ライブラリファイルへのパス. デバッグリリース用の類似のライブラリに対しても, Deflate_LIBRARY_DEBUG という類似の変数を指定できます.

GDAL_USE_DEFLATE=ON/OFF

Deflate を使用するかどうかを制御します. Deflate が見つかった場合, デフォルトは ON です.

ECW

Hexagon ECW SDK (クローズドソース/プロプライエタリ) は, ECW -- Enhanced Compressed Wavelets (.ecw) ドライバに必要です. 現在, ECW SDK 3.3 および 5.5 に対するサポートのみが提供されています.

ECW SDK 5.5 の場合, ECW_ROOT または CMAKE_PREFIX_PATH は, 通常 ERDAS-ECW_JPEG_2000_SDK-5.5.0/Desktop_Read-Only で終わる include および lib サブディレクトリが含まれるディレクトリを指す必要があります.

ECW_INCLUDE_DIR

NCSECWClient.h ヘッダーファイルを含む include ディレクトリへのパス.

ECW_LIBRARY

libNCSEcw ライブラリファイルへのパス.

ECWnet_LIBRARY

libNCSCnet ライブラリファイルへのパス (SDK 3.3 のみ必要).

ECWC_LIBRARY

libNCSEcwC ライブラリファイルへのパス (SDK 3.3 のみ必要).

NCSUtil_LIBRARY

libNCSUtil ライブラリファイルへのパス (SDK 3.3 のみ必要).

GDAL_USE_ECW=ON/OFF

ECW を使用するかどうかを制御します. ECW が見つかった場合, デフォルトは ON です.

EXPAT

Expat は, 多くの OGR ドライバ (GML, GeoRSS, GPX, KML, LVBAG, OSM, ODS, SVG, WFS, XSLX など) で XML パース機能を有効にするために必要なストリーム指向の XML パーサライブラリです. このライブラリは強く推奨されます. ILI や GMLAS などの他のドライバは, XercesC ライブラリも必要とするかもしれません.

EXPAT_INCLUDE_DIR

expat.h ヘッダーファイルを含む include ディレクトリへのパス.

EXPAT_LIBRARY

共有または静的ライブラリファイルへのパス.

EXPAT_USE_STATIC_LIBS=ON/OFF

Added in version 3.7.1.

Expat の静的ビルドにリンクする場合は, 必ず ON に設定する必要があります.

GDAL_USE_EXPAT=ON/OFF

EXPAT を使用するかどうかを制御します. EXPAT が見つかった場合, デフォルトは ON です.

FileGDB

FileGDB SDK (クローズドソース/プロプライエタリ) は, ESRI File Geodatabase (FileGDB) ドライバに必要です (ESRI File Geodatabase vector (OpenFileGDB) ドライバとは異なり, 外部要件はありません).

FileGDB_ROOT または CMAKE_PREFIX_PATH は, SDK のディレクトリを指す必要があります.

FileGDB_INCLUDE_DIR

FileGDBAPI.h ヘッダーファイルを含む include ディレクトリへのパス.

FileGDB_LIBRARY

ライブラリファイルへのパス.

FileGDB_LIBRARY_RELEASE

リリースライブラリファイルへのパス (Windows のみ使用).

FileGDB_LIBRARY_DEBUG

デバッグライブラリファイルへのパス (Windows のみ使用).

GDAL_USE_FILEGDB=ON/OFF

FileGDB を使用するかどうかを制御します. FileGDB が見つかった場合, デフォルトは ON です.

FreeXL

FreeXL ライブラリは, XLS - MS Excel format ドライバに必要です.

FREEXL_INCLUDE_DIR

freexl.h ヘッダーファイルを含む include ディレクトリへのパス.

FREEXL_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_FREEXL=ON/OFF

FreeXL を使用するかどうかを制御します. FreeXL が見つかった場合, デフォルトは ON です.

FYBA

OpenFyba ライブラリは, Norwegian SOSI Standard ドライバをビルドするために必要です.

FYBA_INCLUDE_DIR

fyba.h ヘッダーファイルを含む include ディレクトリへのパス.

FYBA_FYBA_LIBRARY

ライブラリファイル fyba へのパス.

FYBA_FYGM_LIBRARY

ライブラリファイル fygm へのパス.

FYBA_FYUT_LIBRARY

ライブラリファイル fyut へのパス.

GDAL_USE_FYBA=ON/OFF

FYBA を使用するかどうかを制御します. FYBA が見つかった場合, デフォルトは ON です.

GEOTIFF

GTiff -- GeoTIFF File Format ドライバおよび他のいくつかのドライバに必要です. 見つからない場合, libgeotiff の内部コピーを使用できます.

GEOTIFF_INCLUDE_DIR

libgeotiff ヘッダーファイルを含む include ディレクトリへのパス.

GEOTIFF_LIBRARY_RELEASE

libgeotiff.so, geotiff.lib などの共有または静的ライブラリファイルへのパス. デバッグリリース用の類似のライブラリに対しても, GEOTIFF_LIBRARY_DEBUG という類似の変数を指定できます.

GDAL_USE_GEOTIFF=ON/OFF

外部 libgeotiff を使用するかどうかを制御します. 外部 libgeotiff が見つかった場合, デフォルトは ON です.

GDAL_USE_GEOTIFF_INTERNAL=ON/OFF

内部 libgeotiff コピーを使用するかどうかを制御します. デフォルトは GDAL_USE_INTERNAL_LIBS に依存します. ON に設定されている場合, GDAL_USE_GEOTIFF=ON より優先されます.

GEOS

GEOS は, 2次元ベクトルジオメトリ上での操作を実行するための C++ ライブラリです. OGR で利用可能なほとんどのジオメトリ処理操作のバックエンドとして使用されます (交差, バッファなど). geos-config プログラムを使用して検出できます.

GEOS_INCLUDE_DIR

geos_c.h ヘッダーファイルを含む include ディレクトリへのパス.

GEOS_LIBRARY

共有または静的ライブラリファイル (libgeos_c) へのパス.

GDAL_USE_GEOS=ON/OFF

GEOS を使用するかどうかを制御します. GEOS が見つかった場合, デフォルトは ON です.

GIF

giflib は, GIF -- Graphics Interchange Format ドライバに必要です. 見つからない場合, 内部コピーを使用できます.

GIF_INCLUDE_DIR

gif_lib.h ヘッダーファイルを含む include ディレクトリへのパス.

GIF_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_GIF=ON/OFF

外部 giflib を使用するかどうかを制御します. 外部 giflib が見つかった場合, デフォルトは ON です.

GDAL_USE_GIF_INTERNAL=ON/OFF

内部 giflib コピーを使用するかどうかを制御します. デフォルトは GDAL_USE_INTERNAL_LIBS に依存します. ON に設定されている場合, GDAL_USE_GIF=ON より優先されます.

GTA

GTA ライブラリは, GTA - Generic Tagged Arrays ドライバに必要です.

GTA_INCLUDE_DIR

gta/gta.h ヘッダーファイルを含む include ディレクトリへのパス.

GTA_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_GTA=ON/OFF

GTA を使用するかどうかを制御します. GTA が見つかった場合, デフォルトは ON です.

HEIF

HEIF (>= 1.1) ライブラリは, HEIF / HEIC -- ISO/IEC 23008-12 High Efficiency Image File Format ドライバで使用されます. pkg-config で検出できます.

HEIF_INCLUDE_DIR

libheif/heif.h ヘッダーファイルを含む include ディレクトリへのパス.

HEIF_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_HEIF=ON/OFF

HEIF を使用するかどうかを制御します. HEIF が見つかった場合, デフォルトは ON です.

HDF4

HDF4 C ライブラリは, HDF4 -- Hierarchical Data Format Release 4 (HDF4) ドライバに必要です.

HDF4_INCLUDE_DIR

hdf.h ヘッダーファイルを含む include ディレクトリへのパス.

HDF4_df_LIBRARY_RELEASE

共有または静的 dfalt または df ライブラリファイルへのパス. デバッグリリース用の類似のライブラリに対しても, HDF4_df_LIBRARY_DEBUG という類似の変数を指定できます.

HDF4_mfhdf_LIBRARY_RELEASE

共有または静的 mfhdfalt または mfhdf ライブラリファイルへのパス. デバッグリリース用の類似のライブラリに対しても, HDF4_mfhdf_LIBRARY_DEBUG という類似の変数を指定できます.

HDF4_xdr_LIBRARY_RELEASE

共有または静的 xdr ライブラリファイルへのパス. デバッグリリース用の類似のライブラリに対しても, HDF4_xdr_LIBRARY_DEBUG という類似の変数を指定できます. 通常, Linux ビルドには必要ありません.

HDF4_szip_LIBRARY_RELEASE

共有または静的 szip ライブラリファイルへのパス. デバッグリリース用の類似のライブラリに対しても, HDF4_szip_LIBRARY_DEBUG という類似の変数を指定できます. 通常, Linux ビルドには必要ありません.

HDF4_COMPONENTS

このオプションの値はデフォルトで df;mfhdf;xdr;szip となるリストです. HDF4 のリンクに異なるライブラリが必要な場合は, HDF4_{comp_name}_LIBRARY_[RELEASE/DEBUG] 変数が利用可能になり, ライブラリファイルを設定できます.

GDAL_USE_HDF4=ON/OFF

HDF4 を使用するかどうかを制御します. HDF4 が見つかった場合, デフォルトは ON です.

HDF5

HDF5 C ライブラリは, HDF5 -- Hierarchical Data Format Release 5 (HDF5) および BAG -- Bathymetry Attributed Grid ドライバに必要です. HDF5 CXX ライブラリは, KEA ドライバに必要です. HDF5 ライブラリを検出するために, https://cmake.org/cmake/help/latest/module/FindHDF5.html モジュールが使用されます.

GDAL_USE_HDF5=ON/OFF

HDF5 を使用するかどうかを制御します. HDF5 が見つかった場合, デフォルトは ON です.

GDAL_ENABLE_HDF5_GLOBAL_LOCK=ON/OFF

HDF5 ライブラリの呼び出しを囲むグローバルロックを追加するかどうかを制御します. HDF5 ライブラリがスレッドセーフが有効になっていない状態でビルドされており, HDF5 ドライバがマルチスレッドで使用されている場合に必要です. Unix では, HDF5 ライブラリにリンクする際にスレッドセーフが有効になっているかどうかを検出するヒューリスティックがあります. その他の状況では, 必要に応じて手動で設定する必要があります.

HDFS

Hadoop File System ネイティブライブラリは, /vsihdfs/ 仮想ファイルシステムに必要です.

HDFS_INCLUDE_DIR

hdfs.h ヘッダーファイルを含む include ディレクトリへのパス.

HDFS_LIBRARY

共有または静的 hdfs ライブラリファイルへのパス.

GDAL_USE_HDFS=ON/OFF

HDFS を使用するかどうかを制御します. HDFS が見つかった場合, デフォルトは ON です.

Iconv

Iconv ライブラリは, テキストを一つのエンコーディングから別のエンコーディングに変換するために使用されます. 一般的に, Unix ライクなシステムではシステムライブラリとして利用可能です. Windows では, GDAL はいくつかの基本的な変換に対してオペレーティングシステムの API を利用できますが, Iconv を使用すると追加の機能が提供されます.

Iconv_INCLUDE_DIR

iconv.h ヘッダーファイルを含む include ディレクトリへのパス.

Iconv_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_ICONV=ON/OFF

Iconv を使用するかどうかを制御します. Iconv が見つかった場合, デフォルトは ON です.

IDB

Informix DataBase Client SDK (クローズドソース/プロプライエタリ) は, IDB ドライバをビルドするために必要です. IDB_ROOT または CMAKE_PREFIX_PATH は, SDK のディレクトリを指す必要があります.

IDB_INCLUDE_DIR

c++/it.h ヘッダーファイルを含む include ディレクトリ (通常は incl で終わる) へのパス.

IDB_IFCPP_LIBRARY

ライブラリファイル ifc++ (通常は lib/c++ サブディレクトリにある) へのパス.

IDB_IFDMI_LIBRARY

ライブラリファイル ifdmi (通常は lib/dmi サブディレクトリにある) へのパス.

IDB_IFSQL_LIBRARY

ライブラリファイル ifsql (通常は lib/esql サブディレクトリにある) へのパス.

IDB_IFCLI_LIBRARY

ライブラリファイル ifcli (通常は lib/cli サブディレクトリにある) へのパス.

GDAL_USE_IDB=ON/OFF

IDB を使用するかどうかを制御します. IDB が見つかった場合, デフォルトは ON です.

JPEG

libjpeg は, JPEG -- JPEG JFIF File Format ドライバに必要であり, 他のいくつかのドライバ (GPKG -- GeoPackage raster, MRF -- Meta Raster Format, 内部 libtiff など) で使用される場合があります. 見つからない場合, 内部コピーの libjpeg (6b) を使用できます. 最高のパフォーマンスを得るために, libjpeg-turbo の使用を強くお勧めします. ライブラリの検出方法についての詳細は, https://cmake.org/cmake/help/latest/module/FindJPEG.html を参照してください.

注釈

libjpeg-turbo を使用する場合, JPEG_LIBRARY[_RELEASE/_DEBUG] は, TurboJPEG ではなく libjpeg ABI を持つライブラリを指す必要があります. 違いについては, https://libjpeg-turbo.org/About/TurboJPEG を参照してください.

JPEG_INCLUDE_DIR

jpeglib.h ヘッダーファイルを含む include ディレクトリへのパス.

JPEG_LIBRARY_RELEASE

共有または静的ライブラリファイルへのパス. デバッグリリース用の類似のライブラリに対しても, JPEG_LIBRARY_DEBUG という類似の変数を指定できます.

GDAL_USE_JPEG=ON/OFF

外部 libjpeg を使用するかどうかを制御します. 外部 libjpeg が見つかった場合, デフォルトは ON です.

GDAL_USE_JPEG_INTERNAL=ON/OFF

内部 libjpeg コピーを使用するかどうかを制御します. デフォルトは GDAL_USE_INTERNAL_LIBS に依存します. ON に設定されている場合, GDAL_USE_JPEG=ON より優先されます.

EXPECTED_JPEG_LIB_VERSION=number

外部 libjpeg と共に使用されます. たとえば, libjpeg 8 ABI の場合は 80 です. これは, ビルド時に期待される JPEG ライブラリが GDAL によって含まれているかどうかをチェックするために使用できます.

JPEG12

libjpeg-12 ビットは, 12ビットの深度を持つ JPEG 画像を処理するために, JPEG -- JPEG JFIF File Format, GTiff -- GeoTIFF File Format (内部 libtiff を使用する場合), JPEG -- JPEG JFIF File Format , MRF -- Meta Raster Format , NITF -- National Imagery Transmission Format ドライバで使用できます. これは, 内部 libjpeg (6b) でのみサポートされています. 通常の 8ビット JPEG に外部または内部 libjpeg を使用するかどうかに関係なく使用できます.

GDAL_USE_JPEG12_INTERNAL=ON/OFF

内部 libjpeg-12 コピーを使用するかどうかを制御します. デフォルトは ON です.

注釈

GDAL 3.7 以降, libjpeg-turbo >= 2.2 を使用している場合, ネイティブでデュアル 8/12ビットをサポートするために, JPEG, MRF, NITF または GeoTIFF (内部 libtiff でビルドされた場合) ドライバで 12ビットJPEG サポートを得るために, 内部 libjpeg-12 を使用する必要はありません. 外部 libtiff を使用している場合, GeoTIFF サポートで 12ビット JPEG サポートを得るには, libjpeg-turbo >= 2.2 でビルドされた libtiff >= 4.5 が必要です.

JSON-C

json-c ライブラリは, JSON コンテンツの読み書きに必要です. pkg-config で検出できます. 見つからない場合, json-c の内部コピーを使用できます.

JSONC_INCLUDE_DIR

json.h ヘッダーファイルを含む include ディレクトリへのパス.

JSONC_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_JSONC=ON/OFF

JSON-C を使用するかどうかを制御します. JSON-C が見つかった場合, デフォルトは ON です.

GDAL_USE_JSONC_INTERNAL=ON/OFF

内部 JSON-C コピーを使用するかどうかを制御します. デフォルトは GDAL_USE_INTERNAL_LIBS に依存します. ON に設定されている場合, GDAL_USE_JSONC=ON より優先されます.

JXL

libjxl <https://github.com/libjxl/libjxl> ライブラリは, 内部 libtiff に対してビルドされた GTiff -- GeoTIFF File Format ドライバで使用されます. pkg-config で検出できます.

JXL_INCLUDE_DIR

jxl/decode.h ヘッダーファイルを含む include ディレクトリへのパス.

JXL_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_JXL=ON/OFF

JXL を使用するかどうかを制御します. JXL が見つかった場合, デフォルトは ON です.

KDU

Kakadu ライブラリ (プロプライエタリ) は, JP2KAK -- JPEG 2000 (based on Kakadu SDK) および JPIPKAK - JPIP Streaming ドライバに必要です. 標準化されたインストールレイアウトや固定されたライブラリファイル名はないため, Kakadu アーティファクトを見つけるのは少し難しいです. 現在, KDU_ROOT 変数からの自動検出は Linux, Mac および Windows x86_64 ビルドにのみ実装されています. 他のプラットフォームでは, ユーザーは KDU_LIBRARY および KDU_AUX_LIBRARY 変数を手動で指定する必要があります.

KDU_INCLUDE_DIR

Kakadu ビルドツリーのルートへのパスで, coresys/common/kdu_elementary.h ヘッダーファイルが見つかるべきです.

KDU_LIBRARY

Unix では libkdu_vXYR.so または Windows では kdu_vXYR.lib のような名前の共有ライブラリファイルへのパスで, X.Y は Kakadu のバージョンです.

KDU_AUX_LIBRARY

Unix では libkdu_aXYR.so または Windows では kdu_aXYR.lib のような名前の共有ライブラリファイルへのパスで, X.Y は Kakadu のバージョンです.

GDAL_USE_KDU=ON/OFF

KDU を使用するかどうかを制御します. KDU が見つかった場合, デフォルトは ON です.

KEA

KEA ライブラリは, KEA ドライバに必要です. HDF5 CXX ライブラリも必要です.

KEA_INCLUDE_DIR

libkea/KEACommon.h ヘッダーファイルを含む include ディレクトリへのパス.

KEA_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_KEA=ON/OFF

KEA を使用するかどうかを制御します. KEA が見つかった場合, デフォルトは ON です.

LERC

LERC は, 任意のピクセルタイプ (RGB または Byte だけでなく) に対して高速なエンコードとデコードをサポートするオープンソースの画像またはラスタ形式です. ユーザーは, エンコード時にピクセルごとの最大圧縮エラーを設定するため, 元の入力画像の精度が保存されます (ユーザー定義のエラー境界内で).

LERC_INCLUDE_DIR

Lerc_c_api.h ヘッダーファイルを含む include ディレクトリへのパス.

LERC_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_LERC=ON/OFF

LERC を使用するかどうかを制御します. LERC が見つかった場合, デフォルトは ON です.

GDAL_USE_LERC_INTERNAL=ON/OFF

LERC 内部ライブラリを使用するかどうかを制御します. デフォルトは GDAL_USE_INTERNAL_LIBS に依存します. ON に設定されている場合, GDAL_USE_LERC=ON より優先されます.

LIBAEC

libaec は, CCSDS 推奨標準 121.0-B-3 で定義されている拡張ゴロム・ライス符号化を提供する圧縮ライブラリです. GRIB -- WMO General Regularly-distributed Information in Binary form ドライバで使用されます.

LIBAEC_INCLUDE_DIR

libaec.h ヘッダーファイルを含む include ディレクトリへのパス.

LIBAEC_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_LIBAEC=ON/OFF

LIBAEC を使用するかどうかを制御します. LIBAEC が見つかった場合, デフォルトは ON です.

LibKML

LibKML は, LIBKML Driver (.kml .kmz) ドライバに必要です. pkg-config で検出できます.

LIBKML_INCLUDE_DIR

ベース include ディレクトリへのパス.

LIBKML_BASE_LIBRARY

共有または静的ライブラリファイル kmlbase へのパス

LIBKML_DOM_LIBRARY

共有または静的ライブラリファイル kmldom へのパス

LIBKML_ENGINE_LIBRARY

共有または静的ライブラリファイル kmlengine へのパス

LIBKML_MINIZIP_LIBRARY

共有または静的ライブラリファイル minizip へのパス

LIBKML_URIPARSER_LIBRARY

共有または静的ライブラリファイル uriparser へのパス

GDAL_USE_LIBKML=ON/OFF

LibKML を使用するかどうかを制御します. LibKML が見つかった場合, デフォルトは ON です.

LibLZMA

LibLZMA は, LZMA2 圧縮アルゴリズムを提供する圧縮ライブラリです. 内部 libtiff ライブラリまたは Zarr ドライバで使用されます.

LIBLZMA_INCLUDE_DIR

lzma.h ヘッダーファイルを含む include ディレクトリへのパス.

LIBLZMA_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_LIBLZMA=ON/OFF

LibLZMA を使用するかどうかを制御します. LibLZMA が見つかった場合, デフォルトは ON です.

libOpenDRIVE

libOpenDRIVE のバージョン >= 0.6.0 が, XODR -- OpenDRIVE Road Description Format ドライバに必要です.

OpenDrive_DIR

libOpenDRIVE CMake 構成ディレクトリへのパス <installDir>/cmake/. cmmake/ パスは, 通常, libOpenDRIVE をインストールすると自動的に作成され, 他のプロジェクトビルドに含めるための必要な構成ファイルが含まれています.

GDAL_USE_OPENDRIVE=ON/OFF

libOpenDRIVE を使用するかどうかを制御します. libOpenDRIVE が見つかった場合, デフォルトは ON です.

LibQB3

QB3 圧縮は, MRF -- Meta Raster Format ドライバで使用されます.

GDAL_USE_LIBQB3=ON/OFF

LibQB3 を使用するかどうかを制御します. LibQB3 が見つかった場合, デフォルトは ON です.

LibXml2

LibXml2 処理ライブラリは, いくつかのドライバ (PDF, GMLAS, GML OGR VRT) で XML ファイルを XML スキーマ (.xsd) に対して検証するために使用されます. また, GMLJP2v2 生成の高度な機能にも使用されます.

LIBXML2_INCLUDE_DIR

ベース include ディレクトリへのパス.

LIBXML2_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_LIBXML2=ON/OFF

LibXml2 を使用するかどうかを制御します. LibXml2 が見つかった場合, デフォルトは ON です.

LURATECH

Luratech JPEG2000 SDK (クローズドソース/プロプライエタリ) は, JP2Lura -- JPEG2000 driver based on Lurawave library ドライバに必要です.

LURATECH_ROOT または CMAKE_PREFIX_PATH は, SDK のディレクトリを指す必要があります.

LURATECH_INCLUDE_DIR

lwf_jp2.h ヘッダーファイルを含む include ディレクトリへのパス.

LURATECH_LIBRARY

ライブラリファイル lib_lwf_jp2.a / lwf_jp2.lib へのパス

GDAL_USE_LURATECH=ON/OFF

LURATECH を使用するかどうかを制御します. LURATECH が見つかった場合, デフォルトは ON です.

LZ4

LZ4 は, LZ4 圧縮アルゴリズムを提供する圧縮ライブラリです. Zarr ドライバで使用されます.

LZ4_INCLUDE_DIR

lz4.h ヘッダーファイルを含む include ディレクトリへのパス.

LZ4_LIBRARY_RELEASE

共有または静的ライブラリファイルへのパス. デバッグリリース用の類似のライブラリに対しても, LZ4_LIBRARY_DEBUG という類似の変数を指定できます.

GDAL_USE_LZ4=ON/OFF

LZ4 を使用するかどうかを制御します. LZ4 が見つかった場合, デフォルトは ON です.

MONGOCXX

MongoCXX および BsonCXX ライブラリは, MongoDBv3 ドライバをビルドするために必要です. pkg-config で検出できます.

MONGOCXX_INCLUDE_DIR

mongocxx/client.hpp ヘッダーファイルを含む include ディレクトリへのパス.

BSONCXX_INCLUDE_DIR

bsoncxx/config/version.hpp ヘッダーファイルを含む include ディレクトリへのパス.

MONGOCXX_LIBRARY

ライブラリファイル mongocxx へのパス

BSONCXX_LIBRARY

ライブラリファイル bsoncxx へのパス

GDAL_USE_MONGOCXX=ON/OFF

MONGOCXX を使用するかどうかを制御します. MONGOCXX が見つかった場合, デフォルトは ON です.

MRSID

MRSID Raster DSDK (クローズドソース/プロプライエタリ) は, MrSID -- Multi-resolution Seamless Image Database ドライバに必要です.

MRSID_ROOT または CMAKE_PREFIX_PATH は, Raster_DSDK で終わる SDK のディレクトリを指す必要があります. Linux では, lib サブディレクトリが LD_LIBRARY_PATH にある必要があります. これにより, アプリケーションのリンクが成功し, libtbb.so が見つかります.

MRSID_INCLUDE_DIR

lt_base.h ヘッダーファイルを含む include ディレクトリへのパス.

MRSID_LIBRARY

ライブラリファイル libltidsdk へのパス

GDAL_ENABLE_DRIVER_JP2MRSID

MrSID SDK を介して JPEG2000 サポートを有効にするかどうか. このオプションのデフォルト値は OFF です.

GDAL_USE_MRSID=ON/OFF

MRSID を使用するかどうかを制御します. MRSID が見つかった場合, デフォルトは ON です.

MSSQL_NCLI

Microsoft SQL Native Client Library (クローズドソース/プロプライエタリ) は, MSSQLSpatial - Microsoft SQL Server Spatial Database ドライバでバルクコピーを有効にするために必要です. MSSQL_NCLI と MSSQL_ODBC の両方が見つかり有効になっている場合, MSSQL_ODBC が使用されます. 通常, 標準の場所にインストールされており, バージョン 11 で見つかります.

MSSQL_NCLI_VERSION

Native Client のメジャーバージョン, 通常は 11

MSSQL_NCLI_INCLUDE_DIR

sqlncli.h ヘッダーファイルを含む include ディレクトリへのパス.

MSSQL_NCLI_LIBRARY

リンクするライブラリへのパス.

GDAL_USE_MSSQL_NCLI=ON/OFF

MSSQL_NCLI を使用するかどうかを制御します. MSSQL_NCLI が見つかった場合, デフォルトは ON です.

MSSQL_ODBC

Microsoft SQL Native ODBC driver Library (クローズドソース/プロプライエタリ) は, MSSQLSpatial - Microsoft SQL Server Spatial Database ドライバでバルクコピーを有効にするために必要です. MSSQL_NCLI と MSSQL_ODBC の両方が見つかり有効になっている場合, MSSQL_ODBC が使用されます. 通常, 標準の場所にインストールされており, バージョン 17 が見つかります.

MSSQL_ODBC_VERSION

Native Client のメジャーバージョン, 通常は 17

MSSQL_ODBC_INCLUDE_DIR

msodbcsql.h ヘッダーファイルを含む include ディレクトリへのパス.

MSSQL_ODBC_LIBRARY

リンクするライブラリへのパス.

GDAL_USE_MSSQL_ODBC=ON/OFF

MSSQL_ODBC を使用するかどうかを制御します. MSSQL_ODBC が見つかった場合, デフォルトは ON です.

MYSQL

MySQL または MariaDB クライアントライブラリは, MySQL ドライバを有効にするために必要です.

MYSQL_INCLUDE_DIR

mysql.h ヘッダーファイルを含む include ディレクトリへのパス.

MYSQL_LIBRARY

リンクするライブラリへのパス.

GDAL_USE_MYSQL=ON/OFF

MYSQL を使用するかどうかを制御します. MYSQL が見つかった場合, デフォルトは ON です.

NetCDF

netCDF は, NetCDF: Network Common Data Form ドライバを有効にするために必要です. nc-config プログラムを使用して検出できます.

NETCDF_INCLUDE_DIR

netcdf.h ヘッダーファイルを含む include ディレクトリへのパス.

NETCDF_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_NETCDF=ON/OFF

netCDF を使用するかどうかを制御します. netCDF が見つかった場合, デフォルトは ON です.

ODBC

ODBC は, さまざまなドライバに必要です: ODBC RDBMS, ESRI Personal GeoDatabase, SAP HANA および MSSQLSpatial - Microsoft SQL Server Spatial Database. 通常, Unix および Windows のシステムディレクトリで自動的に見つかります.

ODBC_INCLUDE_DIR

sql.h ヘッダーを含む ODBC include ディレクトリへのパス.

ODBC_LIBRARY

リンクする ODBC ライブラリへのパス.

GDAL_USE_ODBC=ON/OFF

ODBC を使用するかどうかを制御します. ODBC が見つかった場合, デフォルトは ON です.

ODBC-CPP

odbc-cpp-wrapper ライブラリ は, SAP HANA ドライバに必要です.

ODBCCPP_INCLUDE_DIR

odbc/Environment.h ヘッダーファイルを含む include ディレクトリへのパス.

ODBCCPP_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_ODBCCPP=ON/OFF

ODBC-CPP を使用するかどうかを制御します. ODBC-CPP が見つかった場合, デフォルトは ON です.

OGDI

OGDI ライブラリは, OGDI Vectors ドライバに必要です. pkg-config で検出できます.

OGDI_INCLUDE_DIR

ecs.h ヘッダーファイルを含む include ディレクトリへのパス.

OGDI_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_OGDI=ON/OFF

OGDI を使用するかどうかを制御します. OGDI が見つかった場合, デフォルトは ON です.

OpenCAD

libopencad は, CAD -- AutoCAD DWG ドライバに必要です. 見つからない場合, 内部コピーを使用できます.

OPENCAD_INCLUDE_DIR

opencad.h ヘッダーファイルを含む include ディレクトリへのパス.

OPENCAD_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_OPENCAD=ON/OFF

外部 libopencad を使用するかどうかを制御します. 外部 libopencad が見つかった場合, デフォルトは ON です.

GDAL_USE_OPENCAD_INTERNAL=ON/OFF

内部 libopencad コピーを使用するかどうかを制御します. デフォルトは GDAL_USE_INTERNAL_LIBS に依存します. ON に設定されている場合, GDAL_USE_OPENCAD=ON より優先されます.

OpenCL

OpenCL ライブラリは, 通常, GPU を使用してワーピング計算を高速化するために使用できます.

注釈

(GDAL 3.5 および 3.6) 現在の OpenCL ワーピング実装が一般的な実装よりも遅れているため, 検出された場合でもデフォルトで無効になっています. GDAL 3.7 以降, OpenCL が検出された場合, ビルドサポートがデフォルトで有効になりますが, ランタイムでデフォルトで無効になります. ワーピングオプション USE_OPENCL または構成オプション GDAL_USE_OPENCL を YES に設定する必要があります.

OpenCL_INCLUDE_DIR

CL/cl.h ヘッダーファイルを含む include ディレクトリへのパス.

OpenCL_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_OPENCL=ON/OFF

OPENCL を使用するかどうかを制御します. OPENCL が見つかった場合, デフォルトは OFF です.

OpenEXR

OpenEXR は, EXR -- Extended Dynamic Range Image File Format ドライバに必要です.

OpenEXR_ROOT 変数を指定して, /lib および /include サブディレクトリの親ディレクトリを指定します. つまり, /DEV/lib/openexr-3.0 です. OpenEXR >= 3 の場合は, これは別のライブラリなので, Imath_ROOT も指定してください. つまり, /DEV/lib/imath-3.1.3 です.

または

OpenEXR の pkgconfig を見つけるために CMAKE_PREFIX_PATH 変数に追加してルートディレクトリを指定します. たとえば -DCMAKE_PREFIX_PATH=/DEV/lib/openexr-3.0;/DEV/lib/imath-3.1.3

または

具体的には, OpenEXR_INCLUDE_DIR , Imath_INCLUDE_DIR , OpenEXR_LIBRARY , OpenEXR_UTIL_LIBRARY, OpenEXR_HALF_LIBRARY, OpenEXR_IEX_LIBRARY を明示的に設定します.

GDAL_USE_OPENEXR=ON/OFF

OpenEXR を使用するかどうかを制御します. OpenEXR が見つかった場合, デフォルトは ON です.

OpenJPEG

OpenJPEG ライブラリは, C 言語で書かれたオープンソースの JPEG-2000 コーデックです. JP2OpenJPEG -- JPEG2000 driver based on OpenJPEG library ドライバ, または JPEG-2000 機能を使用する他のドライバに必要です.

OPENJPEG_INCLUDE_DIR

openjpeg.h ヘッダーファイルを含む include ディレクトリへのパス.

OPENJPEG_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_OPENJPEG=ON/OFF

OpenJPEG を使用するかどうかを制御します. OpenJPEG が見つかった場合, デフォルトは ON です.

GDAL_FIND_PACKAGE_OpenJPEG_MODE=MODULE/CONFIG/empty string

Added in version 3.9.

find_package(OpenJPEG) で使用されるモードを制御します. OpenJPEG < 2.5.1 との互換性のため, デフォルトは MODULE です. CONFIG に設定すると, Config モードの検索のみが試行されます. 空の文字列に設定すると, デフォルトの CMake ロジック (https://cmake.org/cmake/help/latest/command/find_package.html) が適用されます.

OpenSSL

OpenSSL ライブラリの Crypto コンポーネントは, Google Cloud の一部の認証メソッドで使用される RSA SHA256 署名機能に使用できます. EEDAI - Google Earth Engine Data API Image 画像を使用するか, /vsigs/ 仮想ファイルシステムを使用するためには, 必要かもしれません.

ライブラリの設定方法の詳細については, https://cmake.org/cmake/help/latest/module/FindOpenSSL.html を参照してください. 静的リンクの場合, 次のオプションが必要になる場合があります: -DOPENSSL_USE_STATIC_LIBS=TRUE -DOPENSSL_MSVC_STATIC_RT=TRUE

GDAL_USE_OPENSSL=ON/OFF

OpenSSL を使用するかどうかを制御します. OpenSSL が見つかった場合, デフォルトは ON です.

Oracle

Oracle Instant Client SDK (クローズドソース/プロプライエタリ) は, Oracle Spatial および Oracle Spatial GeoRaster ドライバに必要です.

Oracle_ROOT

Oracle Instant Client SDK のルートディレクトリへのパス.

GDAL_USE_ORACLE=ON/OFF

Oracle を使用するかどうかを制御します. Oracle が見つかった場合, デフォルトは ON です.

Parquet

Apache Arrow C++ <https://github.com/apache/arrow/tree/master/cpp> ライブラリの Parquet コンポーネントは, (Geo)Parquet ドライバに必要です. CMAKE_PREFIX_PATH 変数にインストールプレフィックスを指定します.

GDAL_USE_PARQUET=ON/OFF

Parquet を使用するかどうかを制御します. Parquet が見つかった場合, デフォルトは ON です.

ARROW_USE_STATIC_LIBRARIES=ON/OFF

静的にビルドされた Arrow ライブラリを使用するかどうかを制御します. Parquet が見つかった場合, デフォルトは OFF です.

PCRE2

PCRE2 は, Perl 互換の正規表現サポートを実装しています. SQLite3 を使用するドライバで REGEXP 演算子に使用されます.

PCRE2_INCLUDE_DIR

pcre2.h ヘッダーファイルを含む include ディレクトリへのパス.

PCRE2_LIBRARY

名前に "pcre2-8" が含まれる共有または静的ライブラリファイルへのパス.

GDAL_USE_PCRE2=ON/OFF

PCRE2 を使用するかどうかを制御します. PCRE2 が見つかった場合, デフォルトは ON です.

PDFIUM

PDFium ライブラリは, PDF -- Geospatial PDF ドライバで利用可能なバックエンドの1つです.

PDFIUM_INCLUDE_DIR

public/fpdfview.h ヘッダーファイルを含む include ディレクトリへのパス.

PDFIUM_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_PDFIUM=ON/OFF

PDFIUM を使用するかどうかを制御します. PDFIUM が見つかった場合, デフォルトは ON です.

PNG

libpng は, PNG -- Portable Network Graphics ドライバに必要であり, 他のいくつかのドライバ ( GRIB -- WMO General Regularly-distributed Information in Binary form , GPKG -- GeoPackage raster など) で使用される場合があります. 見つからない場合, libpng の内部コピーを使用できます. ライブラリが検出される方法の詳細については, https://cmake.org/cmake/help/latest/module/FindPNG.html を参照してください.

PNG_PNG_INCLUDE_DIR

png.h ヘッダーファイルを含む include ディレクトリへのパス.

PNG_LIBRARY_RELEASE

共有または静的ライブラリファイルへのパス. デバッグリリース用の類似のライブラリに対しても, 類似の変数 PNG_LIBRARY_DEBUG を指定できます.

GDAL_USE_PNG=ON/OFF

外部 libpng を使用するかどうかを制御します. 外部 libpng が見つかった場合, デフォルトは ON です.

GDAL_USE_PNG_INTERNAL=ON/OFF

内部 libpng コピーを使用するかどうかを制御します. デフォルトは GDAL_USE_INTERNAL_LIBS に依存します. ON に設定されている場合, GDAL_USE_PNG=ON より優先されます.

Poppler

Poppler ライブラリは, PDF -- Geospatial PDF ドライバで利用可能なバックエンドの1つです.

GDAL は Poppler のプライベートヘッダーが必要ですが, Poppler を -DENABLE_UNSTABLE_API_ABI_HEADERS で設定している場合のみインストールされます.

Poppler_INCLUDE_DIR

poppler-config.h ヘッダーファイルを含む include ディレクトリへのパス.

Poppler_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_POPPLER=ON/OFF

Poppler を使用するかどうかを制御します. Poppler が見つかった場合, デフォルトは ON です.

PostgreSQL

PostgreSQL クライアントライブラリ は, PostgreSQL / PostGIS および PostGISRaster -- PostGIS Raster driver ドライバに必要です.

PostgreSQL_INCLUDE_DIR

libpq-fe.h ヘッダーファイルを含む include ディレクトリへのパス.

PostgreSQL_LIBRARY_RELEASE

共有または静的ライブラリファイル pq / libpq へのパス. デバッグリリース用の類似のライブラリに対しても, 類似の変数 PostgreSQL_LIBRARY_DEBUG を指定できます.

GDAL_USE_POSTGRESQL=ON/OFF

PostgreSQL を使用するかどうかを制御します. PostgreSQL が見つかった場合, デフォルトは ON です.

PROJ

PROJ >= 6.3 は, GDAL の 必須 依存関係です.

PROJ_INCLUDE_DIR

proj.h ヘッダーファイルを含む include ディレクトリへのパス.

PROJ_LIBRARY_RELEASE

共有または静的ライブラリファイルへのパス, たとえば libproj.so, proj.lib などの名前. デバッグリリース用の類似のライブラリに対しても, 類似の変数 PROJ_LIBRARY_DEBUG を指定できます.

GDAL_FIND_PACKAGE_PROJ_MODE=CUSTOM/MODULE/CONFIG/empty string

Added in version 3.9.

find_package(PROJ) で使用されるモードを制御します. デフォルトの CMake 検索ロジック (https://cmake.org/cmake/help/latest/command/find_package.html) が適用される方法を変更します. PROJ >= 8 の場合は CONFIG モードが適用され, それ以外の場合はデフォルトの MODULE モードにフォールバックします. 他の値は find_package() に直接渡されます.

QHULL

QHULL ライブラリは, gdal_grid の線形補間に使用されます. 見つからない場合, QHULL の内部コピーを使用できます.

QHULL_PACKAGE_NAME

通常は qhull_r または qhullstatic_r のような pkg-config パッケージの名前です. デフォルトは qhull_r です.

QHULL_INCLUDE_DIR

libqhull_r/libqhull_r.h ヘッダーファイルを含む include ディレクトリへのパス.

QHULL_LIBRARY

再入可能ライブラリへの共有または静的ライブラリファイルへのパス.

GDAL_USE_QHULL=ON/OFF

QHULL を使用するかどうかを制御します. QHULL が見つかった場合, デフォルトは ON です.

GDAL_USE_QHULL_INTERNAL=ON/OFF

内部 QHULL コピーを使用するかどうかを制御します. デフォルトは GDAL_USE_INTERNAL_LIBS に依存します. ON に設定されている場合, GDAL_USE_QHULL=ON より優先されます.

RASTERLITE2

RasterLite2 (>= 1.1.0) ライブラリは, RasterLite2 - Rasters in SQLite DB ドライバで使用されます. pkg-config で検出できます.

RASTERLITE2_INCLUDE_DIR

rasterlite2/rasterlite2.h ヘッダーファイルを含む include ディレクトリへのパス.

RASTERLITE2_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_RASTERLITE2=ON/OFF

RasterLite2 を使用するかどうかを制御します. RasterLite2 が見つかった場合, デフォルトは ON です.

rdb

RDB <https://repository.riegl.com/software/libraries/rdblib> (クローズドソース/プロプライエタリ) ライブラリは, RDB - RIEGL Database ドライバに必要です. CMAKE_PREFIX_PATH 変数にインストールプレフィックスを指定します.

GDAL_USE_RDB=ON/OFF

rdb を使用するかどうかを制御します. rdb が見つかった場合, デフォルトは ON です.

SPATIALITE

Spatialite ライブラリは, SQLite / Spatialite RDBMS および GPKG -- GeoPackage vector ドライバ, および SQL SQLite方言 で使用されます. pkg-config で検出できます.

SPATIALITE_INCLUDE_DIR

spatialite.h ヘッダーファイルを含む include ディレクトリへのパス.

SPATIALITE_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_SPATIALITE=ON/OFF

Spatialite を使用するかどうかを制御します. Spatialite が見つかった場合, デフォルトは ON です.

SQLite3

SQLite3 ライブラリは, SQLite / Spatialite RDBMS および GPKG -- GeoPackage vector ドライバ (および他のドライバで使用される) および SQL SQLite方言 に必要です.

SQLite3_INCLUDE_DIR

sqlite3.h ヘッダーファイルを含む include ディレクトリへのパス.

SQLite3_LIBRARY

共有または静的ライブラリファイルへのパス, たとえば libsqlite3.so, sqlite3.lib などの名前.

GDAL_USE_SQLITE3=ON/OFF

SQLite3 を使用するかどうかを制御します. SQLite3 が見つかった場合, デフォルトは ON です.

SFCGAL

SFCGAL は, 3D 操作 (PolyhedralSurface, TINs, ...) に対して ISO 19107:2013 および OGC Simple Features Access 1.2 をサポートするジオメトリライブラリです.

SFCGAL_INCLUDE_DIR

ベース include ディレクトリへのパス.

SFCGAL_LIBRARY_RELEASE

共有または静的ライブラリファイルへのパス. デバッグリリース用の類似のライブラリに対しても, 類似の変数 SFCGAL_LIBRARY_DEBUG を指定できます.

GDAL_USE_SFCGAL=ON/OFF

SFCGAL を使用するかどうかを制御します. SFCGAL が見つかった場合, デフォルトは ON です.

SWIG

SWIG は, C および C++ で書かれたプログラムをさまざまな高水準プログラミング言語と接続するソフトウェア開発ツールです. Python, Java, CSharp バインディングに使用されます.

SWIG_EXECUTABLE

SWIG 実行可能ファイルへのパス.

明示的に設定する必要がある場合があり, インストールされたバイナリのディレクトリを PATH に追加しても十分でない場合があります. ソースからビルドする場合, "swig" バイナリが生成されますが, FindSWIG は PATH の他の場所で "swig-4.0" バイナリを優先します.

TEIGHA

TEIGHA / Open Design Alliance ライブラリ (クローズドソース/プロプライエタリ) は, AutoCAD DWG および Microstation DGN v8 ドライバに必要です. Linux では, 共有ライブラリで構成された SDK の場合, アプリケーションのリンクが成功するように, SDK の bin/{platform_name} サブディレクトリを LD_LIBRARY_PATH に設定する必要があります. TEIGHA_ROOT 変数を設定する必要があります.

TEIGHA_ROOT

カーネルおよび図面パッケージを展開する必要があるベースディレクトリへのパス.

TEIGHA_ACTIVATION_FILE_DIRECTORY

OdActivationInfo ファイルがあるディレクトリへのパス. ファイルが TEIGHA_ROOT のどこかにある場合, 自動的に検出されます. それ以外の場合, この変数は最新の SDK バージョン (少なくとも 2021 以降) で設定する必要があります.

GDAL_USE_TEIGHA=ON/OFF

TEIGHA を使用するかどうかを制御します. TEIGHA が見つかった場合, デフォルトは ON です.

TIFF

libtiff は, GTiff -- GeoTIFF File Format ドライバおよび他のいくつかのドライバに必要です. 見つからない場合, libtiff の内部コピーを使用できます.

TIFF_INCLUDE_DIR

tiff.h ヘッダーファイルを含む include ディレクトリへのパス.

TIFF_LIBRARY_RELEASE

共有または静的ライブラリファイルへのパス, たとえば libtiff.so, tiff.lib などの名前. デバッグリリース用の類似のライブラリに対しても, 類似の変数 TIFF_LIBRARY_DEBUG を指定できます.

GDAL_USE_TIFF=ON/OFF

外部 libtiff を使用するかどうかを制御します. 外部 libtiff が見つかった場合, デフォルトは ON です.

GDAL_USE_TIFF_INTERNAL=ON/OFF

内部 libtiff コピーを使用するかどうかを制御します. デフォルトは GDAL_USE_INTERNAL_LIBS に依存します. ON に設定されている場合, GDAL_USE_TIFF=ON より優先されます.

TileDB

TileDB <https://github.com/TileDB-Inc/TileDB> ライブラリは, TileDB - TileDB raster ドライバに必要です. CMAKE_PREFIX_PATH 変数にインストールプレフィックスを指定します.

GDAL 3.9 以降では, TileDB >= 2.15 が必要です.

GDAL_USE_TILEDB=ON/OFF

TileDB を使用するかどうかを制御します. TileDB が見つかった場合, デフォルトは ON です.

WebP

WebP は, 画像圧縮ライブラリです. WEBP - WEBP ドライバに必要であり, GPKG -- GeoPackage raster および内部 libtiff ライブラリで使用される場合があります.

WEBP_INCLUDE_DIR

webp/encode.h ヘッダーファイルを含む include ディレクトリへのパス.

WEBP_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_WEBP=ON/OFF

WebP を使用するかどうかを制御します. WebP が見つかった場合, デフォルトは ON です.

XercesC

Xerces-C は, XML パーサーライブラリであり, NAS - ALKIS, "INTERLIS 1" and "INTERLIS 2" drivers および GMLAS - Geography Markup Language (GML) driven by application schemas ドライバで XML パーサー機能を有効にするために必要です. GML ドライバの代替として Expat に使用することもできます.

XercesC_INCLUDE_DIR

ベース include ディレクトリへのパス.

XercesC_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_XERCESC=ON/OFF

XercesC を使用するかどうかを制御します. XercesC が見つかった場合, デフォルトは ON です.

ZLIB

ZLib は, 損失のない Deflate/Zip 圧縮アルゴリズムを提供する圧縮ライブラリです.

ZLIB_INCLUDE_DIR

zlib.h ヘッダーファイルを含む include ディレクトリへのパス.

ZLIB_LIBRARY_RELEASE

共有または静的ライブラリファイルへのパス. デバッグリリース用の類似のライブラリに対しても, 類似の変数 ZLIB_LIBRARY_DEBUG を指定できます.

ZLIB_IS_STATIC

静的外部 ZLIB ディレクトリへのリンク. GDAL_USE_ZLIB_INTERNAL=OFF および MSVC の場合のみ使用されます.

GDAL_USE_ZLIB=ON/OFF

ZLIB を使用するかどうかを制御します. ZLIB が見つかった場合, デフォルトは ON です.

GDAL_USE_ZLIB_INTERNAL=ON/OFF

内部 zlib コピーを使用するかどうかを制御します. デフォルトは GDAL_USE_INTERNAL_LIBS に依存します. ON に設定されている場合, GDAL_USE_ZLIB=ON より優先されます.

ZSTD

ZSTD は, 損失のない ZStd 圧縮アルゴリズムを提供する圧縮ライブラリです (Deflate/ZIP よりも高速ですが, 互換性はありません). 内部 libtiff ライブラリまたは Zarr ドライバで使用されます.

ZSTD_INCLUDE_DIR

zstd.h ヘッダーファイルを含む include ディレクトリへのパス.

ZSTD_LIBRARY

共有または静的ライブラリファイルへのパス.

GDAL_USE_ZSTD=ON/OFF

ZSTD を使用するかどうかを制御します. ZSTD が見つかった場合, デフォルトは ON です.

ドライバーの選択

デフォルトでは, ビルド要件を満たしているすべてのドライバが GDAL コアライブラリに組み込まれます.

ドライバのサブセットを選択するために利用可能なオプションは次のとおりです:

GDAL_ENABLE_DRIVER_<driver_name>:BOOL=ON/OFF
OGR_ENABLE_DRIVER_<driver_name>:BOOL=ON/OFF

グローバルな動作を制御するオプションとは独立して, これらのオプションで個々のドライバを有効または無効にできます.

注釈

上記および以下の <driver_name> は, 一般的には短いドライバ名ですが, 一貫しているわけではありません.

ビルド目的でいくつかのドライバをグループ化することもあります.

  • いくつかの "raw" ラスタードライバ (ACE2, BT, BYN, CPG, CTable2, DIPEx, DOQ1, DOQ2, EHDR, EIR, ENVI, FAST, GenBIN, GSC, GTX, MFF2, ISCE, KRO, MFF, LAN, LCP, LOSLAS, NDF, NTv2, PAUX, PNM, ROIPAC, RRASTER, SNODAS) は, GDAL_ENABLE_DRIVER_RAW オプションで制御されます.

  • 惑星ラスターフォーマット (PDS, PDS4, ISIS2, ISIS3, VICAR) は, GDAL_ENABLE_DRIVER_PDS オプションで制御されます.

  • AAIGRID, GRASSASCIIGRID, ISG ラスタードライバは, GDAL_ENABLE_DRIVER_AAIGRID オプションで制御されます.

  • ECW, JP2ECW ラスタードライバは, GDAL_ENABLE_DRIVER_ECW オプションで制御されます.

  • ベクター EEDA, ラスタ EEDAI ドライバは, GDAL_ENABLE_DRIVER_EEDA オプションで制御されます.

  • GSAG, GSBG, GS7BG ラスタードライバは, GDAL_ENABLE_DRIVER_GSG オプションで制御されます.

  • HDF5, BAG ラスタードライバは, GDAL_ENABLE_DRIVER_HDF5 オプションで制御されます.

  • MrSID, JP2MrSID ラスタードライバは, GDAL_ENABLE_DRIVER_MRSID オプションで制御されます.

  • NITF, RPFTOC, ECRGTOC ラスタードライバは, GDAL_ENABLE_DRIVER_NITF オプションで制御されます.

  • NWT_GRD, NWT_GRC ラスタードライバは, GDAL_ENABLE_DRIVER_NORTHWOOD オプションで制御されます.

  • SRP, ADRG ラスタードライバは, GDAL_ENABLE_DRIVER_ADRG オプションで制御されます.

  • Interlis 1, Interlis 2 ベクタードライバは, GDAL_ENABLE_DRIVER_ILI オプションで制御されます.

  • WFS, OAPIF ベクタードライバは, GDAL_ENABLE_DRIVER_WFS オプションで制御されます.

  • AVCBIN, AVCE00 ベクタードライバは, GDAL_ENABLE_DRIVER_AVC オプションで制御されます.

  • DWG, DGNv8 ベクタードライバは, GDAL_ENABLE_DRIVER_DWG オプションで制御されます.

名前には変化があるかもしれません, 例:

  • "AIG" ラスタードライバは, GDAL_ENABLE_DRIVER_AIGRID オプションで制御されます.

  • "ESAT" ラスタードライバは, GDAL_ENABLE_DRIVER_ENVISAT オプションで制御されます.

  • "GeoRaster" ラスタードライバは, GDAL_ENABLE_DRIVER_GEOR オプションで制御されます.

  • "RST" ラスタードライバは, GDAL_ENABLE_DRIVER_IDRISI オプションで制御されます.

  • "ElasticSearch" ベクタードライバは, OGR_ENABLE_DRIVER_ELASTIC オプションで制御されます.

  • "PostgreSQL" ベクタードライバは, OGR_ENABLE_DRIVER_PG オプションで制御されます.

  • "UK .NTF" ベクタードライバは, OGR_ENABLE_DRIVER_NTF オプションで制御されます.

注釈

ラスターとベクターの両方を持つドライバ (および単一の GDALDriver インスタンスで内部的に実装されている) は, GDAL_ENABLE_DRIVER_<driver_name> オプションまたは OGR_ENABLE_DRIVER_<driver_name> オプションのいずれかで制御されますが, 両方ではありません:

  • CAD ドライバは, OGR_ENABLE_DRIVER_CAD オプションで制御されます.

  • netCDF ドライバは, GDAL_ENABLE_DRIVER_NETCDF オプションで制御されます.

  • PDF ドライバは, GDAL_ENABLE_DRIVER_PDF オプションで制御されます.

  • GPKG ドライバは, OGR_ENABLE_DRIVER_GPKG オプションで制御されます.

  • NGW ドライバは, OGR_ENABLE_DRIVER_NGW オプションで制御されます.

  • SQLite ドライバは, OGR_ENABLE_DRIVER_SQLITE オプションで制御されます.

注釈

GDAL_ENABLE_DRIVER_<driver_name> および OGR_ENABLE_DRIVER_<driver_name> オプションは, 必要な依存関係が見つかった場合にのみ作成されます.

GDAL_BUILD_OPTIONAL_DRIVERS:BOOL=ON/OFF
OGR_BUILD_OPTIONAL_DRIVERS:BOOL=ON/OFF

すべてのオプションの GDAL/ラスター, およびすべてのオプションの OGR/ベクタードライバをグローバルに有効または無効にします. より正確には, これらの変数を ON に設定すると, GDAL_ENABLE_DRIVER_<driver_name> または OGR_ENABLE_DRIVER_<driver_name> 変数のデフォルト値に影響します (まだ設定されていない場合).

これは, GDAL_ENABLE_DRIVER_<driver_name>:BOOL=ON または OGR_ENABLE_DRIVER_<driver_name>:BOOL=ON 変数を使用して, ドライバのサブセットの個別の有効化と組み合わせることができます. 最初の CMake の実行後に GDAL_BUILD_OPTIONAL_DRIVERS/ OGR_BUILD_OPTIONAL_DRIVERS の値を変更しても, 個々のドライバの有効化は変更されません. その状態をリセットするには, -UGDAL_ENABLE_DRIVER_* -UOGR_ENABLE_DRIVER_* を渡す必要があるかもしれません.

注釈

次の GDAL ドライバは無効にできません: VRT, DERIVED, GTiff, COG, HFA, MEM. 次の OGR ドライバは無効にできません: "ESRI Shapefile", "MapInfo File", OGR_VRT, Memory, KML, GeoJSON, GeoJSONSeq, ESRIJSON, TopoJSON.

注釈

-DOGR_BUILD_OPTIONAL_DRIVERS=OFF ですべての OGR/ベクタードライバを無効にすると, 一部の GDAL/ラスタードライバを有効にするためには, 一部のベクタードライバを有効にする必要がある (およびその逆も同様です). そのような依存関係が満たされていない場合, CMake エラーが発生し, 問題の解決方法についてのヒントが表示されます. また, ラスタードライバの依存関係についてはファイル CMakeLists.txt , ベクタードライバの依存関係については CMakeLists.txt を参照することで, そのようなエラーを事前に予測することも可能です.

JP2OpenJPEG および SVG ドライバを有効にして最小限のビルドの例:

cmake .. -UGDAL_ENABLE_DRIVER_* -UOGR_ENABLE_DRIVER_* \
         -DGDAL_BUILD_OPTIONAL_DRIVERS:BOOL=OFF -DOGR_BUILD_OPTIONAL_DRIVERS:BOOL=OFF \
         -DGDAL_ENABLE_DRIVER_JP2OPENJPEG:BOOL=ON \
         -DOGR_ENABLE_DRIVER_SVG:BOOL=ON

ドライバをプラグインとしてビルドする

重要なサブセット, すべてではありませんが, ドライバをプラグインとしてビルドすることもできます. つまり, 独立した .dll/.so 共有ライブラリとしてビルドし, GDAL インストールの gdalplugins サブディレクトリにインストールします. これは, コア GDAL ライブラリと異なるライセンス (プロプライエタリ, コピーレフト, ...) を持つライブラリに依存するドライバに特に有用です.

プラグインとしてビルドできるドライバのリストは次のコマンドで取得できます:

cmake .. -L | grep -e "_ENABLE.*PLUGIN"

ドライバのプラグイン/ビルトインステータスを選択するために利用可能なオプションは次のとおりです:

GDAL_ENABLE_DRIVER_<driver_name>_PLUGIN:BOOL=ON/OFF
OGR_ENABLE_DRIVER_<driver_name>_PLUGIN:BOOL=ON/OFF

グローバルな動作を制御するオプションとは独立して, これらのオプションで個々のドライバを有効または無効にできます.

ドライバをビルドするためには, 対応する基本の GDAL_ENABLE_DRIVER_{driver_name}:BOOL=ON または OGR_ENABLE_DRIVER_{driver_name}:BOOL=ON オプションを設定する必要があります.

GDAL_ENABLE_PLUGINS:BOOL=ON/OFF

すべての (プラグイン対応の) GDAL および OGR ドライバをプラグインとしてビルドするかどうかをグローバルに有効または無効にします. より正確には, この変数を ON に設定すると, GDAL_ENABLE_DRIVER_<driver_name>_PLUGIN または OGR_ENABLE_DRIVER_<driver_name>_PLUGIN 変数のデフォルト値に影響します (まだ設定されていない場合).

プラグインステータスの個別の有効化/無効化と組み合わせるために, GDAL_ENABLE_DRIVER_{driver_name}_PLUGIN:BOOL または OGR_ENABLE_DRIVER_{driver_name}_PLUGIN:BOOL 変数を使用することができます. 最初の CMake の実行後に GDAL_ENABLE_PLUGINS の値を変更しても, 個々のドライバのプラグインステータスの有効化は変更されません. その状態をリセットするには, -UGDAL_ENABLE_DRIVER_* -UOGR_ENABLE_DRIVER_* を渡す必要があるかもしれません.

JP2OpenJPEG ドライバを除くすべての潜在的なドライバをプラグインとしてビルドする例:

cmake .. -UGDAL_ENABLE_DRIVER_* -UOGR_ENABLE_DRIVER_* \
         -DGDAL_ENABLE_PLUGINS:BOOL=ON \
         -DGDAL_ENABLE_DRIVER_JP2OPENJPEG_PLUGIN:BOOL=OFF

GDAL_ENABLE_PLUGINS:BOOL=ON に関する微妙な点があります. これは, 外部依存関係を持ち, GDAL コア依存関係の一部ではない (netCDF, HDF4, Oracle, PDF など) プラグイン対応のドライバのプラグインステータスのみを制御します.

GDAL_ENABLE_PLUGINS_NO_DEPS:BOOL=ON/OFF

外部依存関係を持たない (BMP, FlatGeobuf など) ドライバ, または GDAL コア依存関係の一部である (GPX など) ドライバのプラグインとしてのビルドをグローバルに有効または無効にします. このようなドライバをプラグインとしてビルドすることは一般的に必要ありませんので, GDAL_ENABLE_PLUGINS とは異なるオプションを使用しています.

一部の状況では, GDAL プラグインの読み込みを防ぐことが望ましい場合があります. これは次のように行うことができます:

GDAL_AUTOLOAD_PLUGINS:BOOL=ON/OFF

GDAL プラグインの読み込みを無効にするには OFF に設定します. デフォルトは ON です.

遅延読み込みプラグイン

GDAL 3.9 以降, プラグインとしてビルドできるいくつかの in-tree ドライバは, 遅延読み込みの方法で読み込まれます. これにより, 外部ライブラリに依存しない一部のコードがコア libgdal に含まれ, ドライバのほとんどのコードが別の動的に読み込まれるライブラリに含まれます. libgdal とそのプラグインが単一の操作でビルドされるビルドでは, これはユーザにとって完全に透過的です.

プラグインドライバがコア libgdal で知られているが, 実行時にプラグインとして利用できない場合, GDAL はプラグインが利用できないことをユーザに通知しますが, インストールすることができます. プラグインのインストール方法についてのヒントをより詳しく指定することができます.

GDAL_DRIVER_<driver_name>_PLUGIN_INSTALLATION_MESSAGE:STRING
OGR_DRIVER_<driver_name>_PLUGIN_INSTALLATION_MESSAGE:STRING

欠落しているプラグインをインストールする方法をユーザに示すためのカスタムメッセージ

例えば, 次のようにビルドする場合:

cmake .. -DOGR_DRIVER_PARQUET_PLUGIN_INSTALLATION_MESSAGE="You may install it with with 'conda install -c conda-forge libgdal-arrow-parquet'"

プラグインがインストールされていない状態で Parquet ファイルを開くと, 次のエラーが表示されます:

$ ogrinfo poly.parquet
ERROR 4: `poly.parquet' not recognized as a supported file format. It could have been recognized by driver Parquet, but plugin ogr_Parquet.so is not available in your installation. You may install it with with 'conda install -c conda-forge libgdal-arrow-parquet'

libgdal が最初にビルドされ, その後プラグインドライバが後のインクリメンタルビルドでビルドされるより具体的なビルドの場合, このアプローチは機能しません. 最初にビルドされたコア libgdal には, プラグインを宣言するために必要なコードが欠落しているためです.

そのような状況では, GDAL をビルドするユーザは, 最初の libgdal ビルド時に, 後で 1 つまたは複数のプラグインがビルドされることを明示的に宣言する必要があります. プラグインが常に利用可能でない場合でも, そのような libgdal ライブラリを配布することは安全です.

次のオプションで行うことができます:

GDAL_REGISTER_DRIVER_<driver_name>_FOR_LATER_PLUGIN:BOOL=ON
OGR_REGISTER_DRIVER_<driver_name>_FOR_LATER_PLUGIN:BOOL=ON

ドライバが後でプラグインとしてビルドされることを宣言します.

このオプションを準備ができていないドライバに設定すると, 明示的な CMake エラーが発生します.

一部のドライバ (ECW, HEIF, JP2KAK, JPEG, JPEGXL, KEA, LERC, MrSID, MSSQLSpatial, netCDF, OpenJPEG, PDF, TileDB, WEBP) では, libgdal に埋め込まれたメタデータおよび/またはデータセット識別コードは, 依存ライブラリのオプション機能 (netCDF の場合は libnetcdf など) に依存します. そのような状況では, 依存ライブラリが CMake 構成時に利用可能であることが望ましいですが, GDAL_USE_<driver_name>=OFF で無効にしておく必要があります. もちろん, プラグインがビルドされるときに再度有効にする必要があります.

netCDF の例:

cmake .. -DGDAL_REGISTER_DRIVER_NETCDF_FOR_LATER_PLUGIN=ON -DGDAL_USE_NETCDF=OFF
cmake --build .

cmake .. -DGDAL_USE_NETCDF=ON -DGDAL_ENABLE_DRIVER_NETCDF=ON -DGDAL_ENABLE_DRIVER_NETCDF_PLUGIN=ON
cmake --build . --target gdal_netCDF

他のドライバの場合, GDAL_REGISTER_DRIVER_<driver_name>_FOR_LATER_PLUGIN / OGR_REGISTER_DRIVER_<driver_name>_FOR_LATER_PLUGIN を libgdal ビルド時に宣言することができます. 後でプラグインをビルドするために必要な依存ライブラリが利用可能である必要はありません.

アウトオブツリー遅延読み込みプラグイン

アウトオブツリードライバも, プロキシドライバを登録するコードを含む外部コードを指す CMake 変数を使用して libgdal がビルドされている場合, 遅延読み込み機能を利用できます.

次のオプションで行うことができます:

ADD_EXTERNAL_DEFERRED_PLUGIN_<driver_name>:FILEPATH=/path/to/some/file.cpp

指定されたファイルは, void DeclareDeferred<driver_name>(void) という C リンケージを持つメソッドを宣言する必要があります. このメソッドは, GDALPluginDriverProxy インスタンスを作成し, その上で GDALDriverManager::DeclareDeferredPluginDriver() を呼び出します.

Python バインディングオプション

BUILD_PYTHON_BINDINGS:BOOL=ON/OFF

Python バインディングをビルドするかどうか. デフォルトでは ON ですが, Python インストールが見つかった場合のみ有効です.

通常の Python インストールには, Python ランタイム (>= 3.6) と setuptools モジュールが含まれるべきです. numpy およびそのヘッダーおよび開発ライブラリの存在も強く推奨されます.

Python インストールは通常, パス内に見つかるか, Python インストーラの他の標準的なインストールメカニズムを通じて登録されます. また, https://cmake.org/cmake/help/git-stage/module/FindPython.html で詳細に説明されているように, いくつかの変数を使用して指定することもできます.

GDAL は以下のオプションも提供しています:

Python_LOOKUP_VERSION:STRING=major.minor.patch

指定された場合, Python_FIND_STRATEGY=VERSION が想定されます. パッチ番号を提供する必要があることに注意してください, EXACT 戦略が使用されます.

その他の便利なオプション:

Python_FIND_VIRTUALENV

アクティブ化ている仮想環境を利用するために'ONLY' を指定できます.

Python_ROOT

Python インストールプレフィックスを指定します.

例:

cmake -DPython_LOOKUP_VERSION=3.6.0 ..
cmake -DPython_FIND_VIRTUALENV=ONLY ..
cmake -DPython_ROOT=C:\Python36 ..

以下のオプションは高度なものであり, install CMake ターゲットの実行中のみ考慮されます.

GDAL_PYTHON_INSTALL_PREFIX

このオプションはディレクトリ名を指定して, CMAKE_INSTALL_PREFIX オプションを上書きすることができます. これは, python3 setup.py install--prefix オプションの値を設定するために使用されます.

GDAL_PYTHON_INSTALL_LAYOUT

このオプションは, python3 setup.py install--install-layout オプションの値を設定するために指定できます. Python インストールが site-packages サブディレクトリを探しているように見える場合, インストールレイアウトはデフォルトで deb に設定されます. それ以外の場合は未指定です.

GDAL_PYTHON_INSTALL_LIB

このオプションは, python3 setup.py install--install-lib オプションの値を設定するために指定できます. Python インストールがフレームワークである場合, これは MacOS システムでのみ考慮されます.

注釈

Python バインディングは, libgdal にリンクされるいくつかのモジュール (osgeo.gdal, osgeo.ogr など) で構成されています. そのため, libgdal の静的ビルドはバインディングと互換性がありません.

Java バインディングオプション

BUILD_JAVA_BINDINGS:BOOL=ON/OFF

Java バインディングをビルドするかどうか. デフォルトでは ON ですが, Java ランタイムおよび開発パッケージが見つかった場合のみ有効です. 設定できる関連するオプションについては, https://cmake.org/cmake/help/latest/module/FindJava.html および https://cmake.org/cmake/help/latest/module/FindJNI.html で説明されています. ant バイナリも PATH に利用可能である必要があります.

GDAL_JAVA_INSTALL_DIR

gdal.jar ファイルをインストールするサブディレクトリ. デフォルトは "${CMAKE_INSTALL_DATADIR}/java" です.

注釈

GDAL 3.8 以前, gdalalljni ライブラリもそのディレクトリにインストールされていました. GDAL 3.8 以降, これは GDAL_JAVA_JNI_INSTALL_DIR 変数で制御されます.

GDAL_JAVA_JNI_INSTALL_DIR

Added in version 3.8.

libgdalalljni.so / libgdalalljni.dylib / gdalalljni.dll ライブラリをインストールするサブディレクトリ. デフォルトは "${CMAKE_INSTALL_LIBDIR}/jni" です.

注釈

GDAL 3.8 以前, gdalalljni ライブラリは GDAL_JAVA_INSTALL_DIR 変数で制御されるディレクトリにインストールされていました.

注釈

Java バインディングは, libgdal にリンクされるいくつかのモジュール (org.osgeo.gdal, org.osgeo.ogr など) で構成されています. そのため, libgdal の静的ビルドはバインディングと互換性がありません.

メンテナンス担当者のみが使用するオプション:

GPG_KEY

ビルドアーティファクトに署名するための GPG キー. bundle.jar を生成するために必要です.

GPG_PASS

ビルドアーティファクトに署名するための GPG パスフレーズ.

C# バインディングオプション

C# バインディングのビルドおよび使用方法の詳細については, 専用のセクション Compiling the C# bindings - CMake Scripts を参照してください.

BUILD_CSHARP_BINDINGS:BOOL=ON/OFF

C# バインディングをビルドするかどうか. デフォルトでは ON ですが, C# ランタイムおよび開発パッケージが見つかった場合のみ有効です..NET SDK または Mono のいずれかを使用できます. 設定できる関連するオプションについては, cmake/modules/thirdparty/FindDotNetFrameworkSdk.cmake および cmake/modules/thirdparty/FindMono.cmake で説明されています.

CSHARP_MONO=ON/OFF

C# バインディングをコンパイルするために .NET ではなく Mono を使用するように強制します.

CSHARP_LIBRARY_VERSION

C# バインディングライブラリをコンパイルする際に使用する .NET (または Mono) ターゲット SDK を設定します. List of acceptable contents for .NET

CSHARP_APPLICATION_VERSION

C# サンプルアプリケーションをコンパイルする際に使用する .NET (または Mono) ターゲット SDK を設定します. List of acceptable contents for .NET

GDAL_CSHARP_ONLY=OFF/ON

GDAL をビルドせずに C# バインディングをビルドします. これは既存の GDAL インストールの上にバインディングをビルドするときに使用する必要があります. たとえば, CONDA パッケージの上にバインディングをビルドするような場合に利用します.

注釈

C# バインディングは, libgdal にリンクされるいくつかのモジュール (OSGeo.GDAL, OSGeo.OGR など) で構成されています. そのため, libgdal の静的ビルドはバインディングと互換性がありません.

ドライバ固有のオプション

GDAL_USE_PUBLICDECOMPWT

MSG -- Meteosat Second Generation ドライバは, このオプションが ON に設定されている場合のみビルドされます (デフォルトは OFF です). その効果は, ビルドツリーに https://gitlab.eumetsat.int/open-source/PublicDecompWT.git リポジトリをダウンロードし (構成時に git バイナリが利用可能である必要があります), その中から必要なファイルをドライバにビルドすることです.

Android 用のクロスコンパイル

最初に https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html#cross-compiling-for-android と:source_file:.github/workflows/android_cmake/start.sh を参照して, Ubuntu からクロスコンパイルするビルドスクリプトの例を確認してください.

典型的なビルドの問題

PROJ はどこで入手できますか ?

PROJ は, GDAL のソースコードツリーにベンダー化されていない GDAL のビルド時依存関係です. そのため, GDAL の CMake を構成するときに PROJ ヘッダーとライブラリが利用可能である必要があります.`PROJ インストール <https://proj.org/install.html>`__ を参照してください.

PROJ ライブラリの競合

カスタム PROJ ビルド (つまり, 配布チャンネルから来ていない PROJ ビルド) を使用している場合, これが他のパッケージ依存関係 (たとえば spatialite や libgeotiff など) と競合することがあります. これらのパッケージ依存関係は, 別の PROJ のコピーにリンクしています.

これを解決するためのクリーンな方法は, 他のライブラリをカスタム PROJ ビルドに対してソースから再ビルドすることです. Linux ベースのシステムの場合, PROJ 6, 7, 8, 9 シリーズで C API/ABI が保持されているため, カスタム PROJ ビルドが他のライブラリで使用されている PROJ よりも新しい場合, 古い libproj.so.XX 名を新しい libproj.so.YY にエイリアスすること (ln -s を使用) ができます. ただし, 本番環境でこの解決策を使用することは絶対に推奨されません.

いずれの場合でも, ldd libgdal.so | grep libproj が複数の行を報告する場合, 実行時にクラッシュが発生します (多くの場合, プロセス終了時に malloc_consolidate(): invalid chunk size および/または Aborted (core dumped) エラーメッセージが表示されます)

Autoconf/nmake (GDAL バージョン < 3.5.0)

See http://web.archive.org/https://trac.osgeo.org/gdal/wiki/BuildHints for hints for GDAL < 3.5 autoconf and nmake build systems.