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.