Skip to content

Commit f2471be

Browse files
authored
Merge pull request #2531 from WardF/filter_quickstart_guide.wif
Add draft filter quickstart guide
2 parents c4fd240 + 39aeb2f commit f2471be

5 files changed

Lines changed: 52 additions & 5 deletions

File tree

RELEASE_NOTES.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ This file contains a high-level description of this package's evolution. Release
1616

1717
#### Changes
1818

19+
* [Enhancement][Documentation] Add Plugins Quick Start Guide. See [GitHub #2524](https://github.com/Unidata/netcdf-c/pull/2524) for more information.
1920
* [Enhancement] Add new entries in `netcdf_meta.h`, `NC_HAS_BLOSC` and `NC_HAS_BZ2`. See [Github #2511](https://github.com/Unidata/netcdf-c/issues/2511) and [Github #2512](https://github.com/Unidata/netcdf-c/issues/2512) for more information.
2021
* [Enhancement] Add new options to `nc-config`: `--has-multifilters`, `--has-stdfilters`, `--has-quantize`, `--plugindir`. See [Github #2509](https://github.com/Unidata/netcdf-c/pull/2509) for more information.
2122
* [Bug Fix] Fix some errors detected in PR 2497. [PR #2497](https://github.com/Unidata/netcdf-c/pull/2497) . See [Github #2503](https://github.com/Unidata/netcdf-c/pull/2503).

docs/Doxyfile.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -814,12 +814,12 @@ INPUT = @abs_top_srcdir@/docs/mainpage.dox \
814814
@abs_top_srcdir@/docs/all-error-codes.md \
815815
@abs_top_srcdir@/docs/inmemory.md \
816816
@abs_top_srcdir@/docs/filters.md \
817+
@abs_top_srcdir@/docs/filter_quickstart.md \
817818
@abs_top_srcdir@/docs/byterange.dox \
818819
@abs_top_srcdir@/docs/nczarr.md \
819820
@abs_top_srcdir@/docs/notes.md \
820821
@abs_top_srcdir@/docs/building-with-cmake.md \
821822
@abs_top_srcdir@/docs/FAQ.md \
822-
@abs_top_srcdir@/docs/known_problems.md \
823823
@abs_top_srcdir@/docs/COPYRIGHT.md \
824824
@abs_top_srcdir@/docs/credits.md \
825825
@abs_top_srcdir@/docs/tutorial.dox \

docs/all-error-codes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ may occur.
7777
# NetCDF-4 Error Codes {#nc4-error-codes}
7878

7979
NetCDF-4 uses all error codes from NetCDF-3 (see section [NetCDF-3 Error
80-
Codes](#NetCDF_002d3-Error-Codes)). The following additional error codes
80+
Codes](#nc3-error-codes)). The following additional error codes
8181
were added for new errors unique to netCDF-4.
8282

8383
~~~~

docs/filter_quickstart.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
NetCDF-4 Filter QuickStart
2+
==============================
3+
4+
\tableofcontents
5+
6+
<!-- double header is needed to workaround doxygen bug -->
7+
8+
NetCDF-4 Filter QuickStart {#nc_filters_quickstart}
9+
==============================
10+
11+
> For full **Filters** documentation, see \ref filters.
12+
13+
**The `libnetcdf.so` library cannot talk to plugin libraries directly. Instead, it requires an "interface" library, which acts as a go-between. The interface libraries are built by the netCDF libraries, when the underlying plugin libraries are detected during configure/build.**
14+
15+
Building and Installing the Interface Libraries {#nc_filters_qs_building}
16+
----------------------------------
17+
18+
When configuring netcdf via either the `configure` script or via `cmake`, you'll need to specify the location to install the interface libraries, as follows:
19+
20+
* configure: `--with-plugin-dir=<absolutely directory>`
21+
* cmake: `-DPLUGIN_INSTALL_DIR=<absolutely directory>`
22+
23+
After compiling and installing `libnetcdf`, the interface libraries for those filters detected will be installed in the user-specified `<absolute directory>`.
24+
25+
26+
Using the Interface Libraries at Run-time {#nc_filters_qs_runtime}
27+
---------------------------------
28+
29+
For historical reasons, `libnetcdf` uses the environmental variable `HDF5_PLUGIN_PATH` to local the interface libraries at run-time.
30+
31+
32+
Example Workflow (blosc) {#nc_filters_qs_workflow_example}
33+
--------------------------------------------------
34+
35+
From scratch, the steps to get this to work are as follows, and assumes `libhdf5` was installed.
36+
37+
1. Install the filter library, and the associate development headers.
38+
2. Configure netCDF with `--enable-plugins` and `--with-plugin-dir=$HOME/netcdf-plugins`
39+
3. Ensure `blosc` is specified in the generated `libnetcdf.settings` file.
40+
4. Run make, make install.
41+
42+
Once built and installed, set the environmental variable `HDF5_PLUGIN_PATH=$HOME/netcdf-plugins`.
43+
44+
The reason this works is because:
45+
46+
1. NetCDF builds the interface library.
47+
2. `ncdump` knows where to find the interface library because `HDF5_PLUGIN_PATH` is set.
48+

docs/known_problems.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33

44
Known Problems with netCDF 4.3.0
55
--------------------------------
6-
7-
- [clang compiler (default on OSX 10.9 Mavericks) detects error
8-
building ncgen3](#clang-ncgen3)
6+
cd
97

108
Known Problems with netCDF 4.2
119
------------------------------

0 commit comments

Comments
 (0)