mirror of
https://github.com/georust/netcdf.git
synced 2025-12-08 19:25:14 +00:00
Add docs on installing netcdf
This commit is contained in:
parent
e3a981e39d
commit
7058e7f514
@ -5,4 +5,5 @@ extend-exclude = ["netcdf-src/source", "netcdf-sys"]
|
|||||||
extend-ignore-identifiers-re = [
|
extend-ignore-identifiers-re = [
|
||||||
"Dout",
|
"Dout",
|
||||||
"is_ambigous", # Remove when deprecated item is removed
|
"is_ambigous", # Remove when deprecated item is removed
|
||||||
|
"typ",
|
||||||
]
|
]
|
||||||
|
|||||||
@ -31,13 +31,12 @@ All variable data is read into a contiguous buffer, or into an [ndarray](https:/
|
|||||||
|
|
||||||
## Building
|
## Building
|
||||||
|
|
||||||
This crate depends on `libnetcdf`, but a static build from source is also supported, which can be enabled using the `static` feature.
|
This crate depends on the library [`netcdf-c`](https://www.unidata.ucar.edu/netcdf/) which must be installed on the machine, along with libraries such as `hdf5`. An alternative to the system libraries is the use of the `static` feature of this crate (`cargo add netcdf --features static`), which compiles `libnetcdf` from source. The `static` feature requires `cmake`, a `c++` compiler and more to be installed on the build machine.
|
||||||
|
|
||||||
The crate is built on several platforms using github actions, and is currently known to build form from source on all major platforms (linux, macos, windows (gnu+msvc)), and through the package installers `conda` and `apt`.
|
The crate is built on several platforms using github actions, and is currently known to build form from source on all major platforms (linux, macos, windows (gnu+msvc)), and through the package installers `conda` and `apt`. Please see the github workflows for tips on how to install `netcdf`.
|
||||||
|
|
||||||
If during compilation there is an error in building the `hdf5` crate, consider using the `static` feature which will include a compatible version of both `netcdf` and `hdf5`. This is likely to be an issue [upstream](https://github.com/aldanor/hdf5-rust/issues/262).
|
|
||||||
|
|
||||||
### Building without `libnetcdf` or building statically
|
### Building `libnetcdf` statically
|
||||||
1. `git clone https://github.com/georust/netcdf`
|
1. `git clone https://github.com/georust/netcdf`
|
||||||
2. `git submodule update --init --recursive`
|
2. `git submodule update --init --recursive`
|
||||||
3. `cargo build --features static`
|
3. `cargo build --features static`
|
||||||
|
|||||||
@ -172,9 +172,6 @@ fn from_utf8_to_trimmed_string(bytes: &[u8]) -> String {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl NcInfo {
|
impl NcInfo {
|
||||||
fn guess() -> Self {
|
|
||||||
todo!()
|
|
||||||
}
|
|
||||||
fn from_path(path: &Path) -> Self {
|
fn from_path(path: &Path) -> Self {
|
||||||
Self {
|
Self {
|
||||||
version: None,
|
version: None,
|
||||||
@ -258,7 +255,9 @@ fn main() {
|
|||||||
info = if let Some(nc_dir) = nc_dir.as_ref() {
|
info = if let Some(nc_dir) = nc_dir.as_ref() {
|
||||||
NcInfo::gather_from_ncconfig(Some(nc_dir)).unwrap_or_else(|| NcInfo::from_path(nc_dir))
|
NcInfo::gather_from_ncconfig(Some(nc_dir)).unwrap_or_else(|| NcInfo::from_path(nc_dir))
|
||||||
} else {
|
} else {
|
||||||
NcInfo::gather_from_ncconfig(None).unwrap_or_else(NcInfo::guess)
|
NcInfo::gather_from_ncconfig(None).unwrap_or_else(||
|
||||||
|
panic!("A system version of libnetcdf could not be found. Consider installing to some default location, use NETCDF_DIR, or prefer the static version of libnetcdf by setting the `static` feature on `netcdf-sys`")
|
||||||
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
println!("cargo::rustc-link-search={}", info.libdir.display());
|
println!("cargo::rustc-link-search={}", info.libdir.display());
|
||||||
|
|||||||
@ -14,7 +14,14 @@
|
|||||||
//!
|
//!
|
||||||
//! For more information see:
|
//! For more information see:
|
||||||
//! * [The official introduction to `netCDF`](https://docs.unidata.ucar.edu/nug/current/netcdf_introduction.html)
|
//! * [The official introduction to `netCDF`](https://docs.unidata.ucar.edu/nug/current/netcdf_introduction.html)
|
||||||
//! * [The `netCDF-c` repository](https://github.com/Unidata/netcdf-c)
|
//! * [The `NetCDF-c` repository](https://github.com/Unidata/netcdf-c)
|
||||||
|
//!
|
||||||
|
//! # Installing netcdf-c
|
||||||
|
//!
|
||||||
|
//! This crate depends on [Unidata NetCDF-c](https://github.com/Unidata/netcdf-c) and dependencies
|
||||||
|
//! of this library (such as hdf5).
|
||||||
|
//! An alternative to the system libraries is to use the bundled sources of netcdf by using the `static` feature of this crate. This will require build utilities such as `cmake`, `c++` compiler and more.
|
||||||
|
//!
|
||||||
//!
|
//!
|
||||||
//! # Examples
|
//! # Examples
|
||||||
//!
|
//!
|
||||||
|
|||||||
@ -19,7 +19,7 @@ use crate::utils::{checked_with_lock, with_lock};
|
|||||||
///
|
///
|
||||||
/// This type is used for retrieving data from a variable.
|
/// This type is used for retrieving data from a variable.
|
||||||
/// Metadata on the `netCDF`-level can be retrieved using e.g.
|
/// Metadata on the `netCDF`-level can be retrieved using e.g.
|
||||||
/// [`fill_value`](Self::fill_value), [`endinanness`](Self::endianness).
|
/// [`fill_value`](Self::fill_value), [`endianness`](Self::endianness).
|
||||||
/// Use [`attributes`](Self::attribute) to get additional metadata assigned
|
/// Use [`attributes`](Self::attribute) to get additional metadata assigned
|
||||||
/// by the data producer. This crate will not apply any of the transformations
|
/// by the data producer. This crate will not apply any of the transformations
|
||||||
/// given by such attributes (e.g. `add_offset` and `scale_factor` are NOT considered).
|
/// given by such attributes (e.g. `add_offset` and `scale_factor` are NOT considered).
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user