12 releases (breaking)
0.10.0 | Jul 26, 2024 |
---|---|
0.9.1 | Aug 24, 2023 |
0.9.0 | Jun 2, 2023 |
0.8.0 | Nov 10, 2022 |
0.1.0 | Oct 8, 2017 |
#173 in Geospatial
4,718 downloads per month
Used in 21 crates
(7 directly)
4MB
131K
SLoC
gdal-sys
Low level GDAL bindings for Rust. The build script will try to auto-dectect the installed GDAL version.
Contains:
- mapping of data types
- raster (GDAL) and vector (OGR) operations
- error handling
- spatial reference operations
Build
The build script should work an Linux and Windows systems. It can be configured with a couple of environment variables:
- if
GDAL_INCLUDE_DIR
orGDAL_LIB_DIR
are defined, they will be used. You should also setGDAL_VERSION
toX.Y.Z
- otherwise, if
GDAL_HOME
is defined, the build script looks forGDAL_HOME/include
,GDAL_HOME/lib
andGDAL_HOME/bin
- finally,
pkg-config
is queried to determine theGDAL
location - you can define
GDAL_STATIC
to linkGDAL
statically
The include directories are only used if you choose to generate the bindings at build time.
On Linux, building should work out-of-the-box.
On Windows, the easiest solution is to point the GDAL_HOME
environment variable to the GDAL
folder.
windows-msvc
requiresgdal_i.lib
to be found in%GDAL_HOME%\lib
.windows-gnu
requires eithergdal_i.lib
in%GDAL_HOME%\lib
ORgdal{version}.dll
in%GDAL_HOME%\bin
.
Generated bindings
By default, gdal-sys will detect the version of libgdal you have installed and
attempt to use prebuilt bindings corresponding to that version. Alternatively,
you can generate your own bindings from your libgdal installation by specifying
the bindgen
feature.
Creating prebuilt bindings
If a new version of GDAL is released, you (as a gdal
contributor) can
generate new bindings for inclusion in the gdal-sys
source distribution by
building with the bindgen
feature, and then copying the generated file. For
example (the hash will differ in your build):
$ cargo build --features bindgen
$ cp target/debug/build/gdal-sys-db833e3088b78e57/out/bindings.rs gdal-sys/prebuilt-bindings/gdal_3.6.rs