proj_sys/
lib.rs

1#![allow(non_upper_case_globals)]
2#![allow(non_camel_case_types)]
3#![allow(non_snake_case)]
4#![doc(html_logo_url = "https://raw.githubusercontent.com/georust/meta/master/logo/logo.png")]
5//! # Low-level bindings for PROJ v9.4.x
6//!
7//! **This is a
8//! [`*-sys`](https://doc.rust-lang.org/cargo/reference/build-scripts.html#-sys-packages)
9//! crate; you shouldn't use its API directly.** See the
10//! [`proj`](https://github.com/georust/proj) crate for general use.
11//!
12//! A guide to the functions can be found here:
13//! <https://proj.org/development/reference/functions.html>.
14//!
15//! By default, the crate will search for an acceptable existing `libproj`
16//! installation on your system using
17//! [pkg-config](https://www.freedesktop.org/wiki/Software/pkg-config/).
18//!
19//! If an acceptable installation is not found, proj-sys will attempt to build
20//! libproj from source bundled in the crate.
21//!
22//! ## Features
23//!
24//! `bundled_proj` - forces building libproj from source even if an acceptable
25//! version could be found on your system.  Note that SQLite3 and `libtiff` must be
26//! present on your system if you wish to use this feature, and that it builds
27//! `libproj` **without** its native network functionality; you will have to
28//! implement your own set of callbacks if you wish to make use of them (see the
29//! [`proj`](https://crates.io/crates/proj) crate for an example).
30
31#[cfg(bundled_build)]
32extern crate libsqlite3_sys;
33#[cfg(bundled_build)]
34extern crate link_cplusplus;
35
36#[cfg(all(not(feature = "nobuild"), feature = "buildtime_bindgen"))]
37include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
38
39#[cfg(all(feature = "nobuild", not(feature = "buildtime_bindgen")))]
40include!("bindings_docs-rs.rs");
41
42#[cfg(all(not(feature = "nobuild"), not(feature = "buildtime_bindgen")))]
43include!("bundled_bindings.rs");