開発環境の設定

ビルド要件

ビルド要件 を参照してください

Vagrant

Vagrant は,VirtualBox などの仮想化製品と連携して再現可能な開発環境を作成するツールです.GDAL には,包括的な依存関係を持つ Ubuntu 仮想マシンを設定する Vagrant 構成ファイルが含まれています.

Vagrant がインストールされ, GDAL ソースがダウンロードされたら,ソースルートディレクトリから以下を実行して仮想マシンを設定できます:

# VAGRANT_VM_CPU=number_of_cpus
vagrant up

ソースルートディレクトリは仮想マシン内で /vagrant に公開されているため,ホストで GDAL ソースファイルを変更すると,VM内で変更が反映されます.ソースファイルを変更した後に GDAL を再構築するには,VMに接続してビルドコマンドを再実行できます:

vagrant ssh
cmake --build .

ホスト上に以下のディレクトリが作成されます(不要になった場合は削除できます):

  • ../apt-cache/ubuntu/jammy64: VM の Ubuntu パッケージのキャッシュを含み,VM の再構築を高速化します

  • build_vagrant: CMake ビルドディレクトリ

  • ccache_vagrant: CCache ディレクトリ

Docker

GitHub Actions で GDAL のビルドとテストに使用される Linux 環境は,開発用の任意のマシンにプルできる Docker イメージで定義されています.各ビルドに使用される Docker イメージは, linux_build.yml で指定されています.例として,以下のコマンドを GDAL ソースルートから実行して, GitHub Actions で使用されている環境と同じ環境で clang アドレスサニタイザ(ASAN) を使用して GDAL をビルドおよびテストできます:

docker run -it \
    -v $(pwd):/gdal:rw \
    ghcr.io/osgeo/gdal-deps:ubuntu20.04-master
cd /gdal
mkdir build-asan
cd build-asan
../.github/workflows/asan/build.sh
../.github/workflows/asan/test.sh

ビルドされたオブジェクトが root に所有されるのを避けるために,上記の docker run コマンドに -u $(id -u):$(id -g) -v /etc/passwd:/etc/passwd を追加すると便利です.

Windows で Conda 依存関係と Visual Studio を使用してビルド

vcpkg を使用するなどの他の方法よりも, GDAL のデバッグビルドには適していません.

git のインストール

git をインストールします

miniconda のインストール

miniconda をインストールします

Visual Studio のインストール

Visual Studio をインストールします.Visual Studio インストーラの Workloads タブで Desktop development with C++ をチェックします.最新の Community Edition (2022) のみが利用可能です.

GDAL の依存関係のインストール

利用可能なコンソールでCondaを開始し, c:\dev ディレクトリがあると仮定します

cd c:\dev
conda create --name gdal
conda activate gdal
conda install --yes --quiet curl libiconv icu git python swig numpy pytest zlib
conda install --yes --quiet -c conda-forge compilers clcache
conda install --yes --quiet -c conda-forge \
    cmake proj geos hdf4 hdf5 \
    libnetcdf openjpeg poppler libtiff libpng xerces-c expat libxml2 kealib json-c \
    cfitsio freexl geotiff jpeg libpq libspatialite libwebp-base pcre postgresql \
    sqlite tiledb zstd charls cryptopp cgal librttopo libkml openssl xz

注釈

compilers パッケージは,cmake が適切な環境を選択するために vs2019_win-64 (執筆時点) をインストールします.インストールされている場合は,Visual Studio 2022 とも機能します.

GDAL ソースのチェックアウト

cd c:\dev
git clone https://github.com/OSGeo/gdal.git

GDAL のビルド

Conda が有効なコンソールから

conda activate gdal
cd c:\dev\gdal
cmake -S . -B build -DCMAKE_PREFIX_PATH:FILEPATH="%CONDA_PREFIX%" \
                    -DCMAKE_C_COMPILER_LAUNCHER=clcache
                    -DCMAKE_CXX_COMPILER_LAUNCHER=clcache
cmake --build build --config Release -j 8

開発環境変数の設定

GDAL がビルドされると,ビルドディレクトリの C++ または Python ユーティリティを実行したり,テストを実行するために,いくつかの環境変数を設定する必要があります.

これは,ビルドディレクトリから以下のソースを実行することで行えます:

. ../scripts/setdevenv.sh

(ビルドディレクトリが GDAL ソースルートのサブディレクトリでない場合は,上記のパスを調整してください).

Windows の場合,類似の scripts/setdevenv.bat スクリプトが存在します(現在は Release ビルドを想定しています).

cd c:\dev\gdal\build
..\scripts\setdevenv.bat

環境変数が正しく設定されているかどうかを確認するには, GDAL バイナリのバージョンで確認できます:

gdalinfo --version
# GDAL 3.7.0dev-5327c149f5-dirty, released 2018/99/99 (debug build)

および Python バインディングで確認できます:

python3 -c 'from osgeo import gdal; print(gdal.__version__)'
# 3.7.0dev-5327c149f5-dirty