mirror of
https://github.com/Unidata/netcdf-c.git
synced 2025-01-24 16:04:40 +08:00
f2a6667833
a distribution package.
81 lines
2.9 KiB
Markdown
81 lines
2.9 KiB
Markdown
\page netCDF-CMake Build Instructions for netCDF-C using CMake
|
|
|
|
|
|
# Overview
|
|
|
|
Starting with netCDF-C 4.3, we are happy to announce the inclusion of CMake support. CMake will allow for building netCDF on a wider range of platforms, include Microsoft Windows with Visual Studio. CMake support also provides robust unit and regression testing tools. We will also maintain the standard autotools-based build system in parallel.
|
|
|
|
In addition to providing new build options for netCDF-C, we will also provide pre-built binary downloads for the shared versions of netCDF for use with Visual Studio.
|
|
|
|
# Requirements
|
|
The following packages are required to build netCDF-C using CMake.
|
|
|
|
* netCDF-C Source Code
|
|
* CMake version 2.9+
|
|
* Optional Requirements:
|
|
* HDF5 Libraries for netCDF4/HDF5 support.
|
|
* libcurl for DAP support.
|
|
|
|
<center>
|
|
<img src="deptree.jpg" height="250px" />
|
|
</center>
|
|
|
|
# The CMake Build Process
|
|
|
|
There are four steps in the Build Process when using CMake
|
|
|
|
1. Configuration: Before compiling, the software is configured based on the desired options.
|
|
2. Building: Once configuration is complete, the libraries are compiled.
|
|
3. Testing: Post-build, it is possible to run tests to ensure the functionality of the netCDF-C libraries.
|
|
4. Installation: If all tests pass, the libraries can be installed in the location specified during configuration.
|
|
|
|
For users who prefer pre-built binaries, installation packages are available at \ref winbin
|
|
|
|
## Configuration
|
|
|
|
The output of the configuration step is a project file based on the appropriate configurator specified. Common configurators include:
|
|
|
|
* Unix Makefiles
|
|
* Visual Studio
|
|
* CodeBlocks
|
|
* ... and others
|
|
|
|
### Common CMake Options
|
|
|
|
| **Option** | **Autotools** | **CMake** |
|
|
| :------- | :----: | :-----: |
|
|
Specify Install Location | --prefix=PREFIX | -D"CMAKE\_INSTALL\_PREFIX=PREFIX"
|
|
Enable/Disable netCDF-4 | --enable-netcdf-4<br>--disable-netcdf-4 | -D"ENABLE\_NETCDF\_4=ON" <br> -D"ENABLE\_NETCDF\_4=OFF"
|
|
Enable/Disable DAP | --enable-dap <br> --disable-dap | -D"ENABLE\_DAP=ON" <br> -D"ENABLE\_DAP=OFF"
|
|
Enable/Disable Utilities | --enable-utilities <br> --disable-utilities | -D"BUILD\_UTILITIES=ON" <br> -D"BUILD\_UTILITIES=OFF"
|
|
Specify shared/Static Libraries | --enable-shared <br> --enable-static | -D"BUILD\_SHARED\_LIBS=ON" <br> -D"BUILD\_SHARED\_LIBS=OFF"
|
|
Enable/Disable Tests | --enable-testsets <br> --disable-testsets | -D"ENABLE\_TESTS=ON" <br> -D"ENABLE\_TESTS=OFF"
|
|
|
|
## Building
|
|
|
|
The compiler can be executed directly with 'make' or the appropriate command for the configurator which was used.
|
|
|
|
> \> make
|
|
|
|
Building can also be executed indirectly via cmake:
|
|
|
|
> \> cmake --build [Build Directory]
|
|
|
|
## Testing
|
|
|
|
Testing can be executed several different ways:
|
|
|
|
> \> make test
|
|
or
|
|
> \> ctest
|
|
or
|
|
> \> cmake --build [Build Directory] --target test
|
|
|
|
## Installation
|
|
|
|
Once netCDF has been built and tested, it may be installed using the following commands:
|
|
|
|
> \> make install
|
|
or
|
|
> \> cmake --build [Build Directory] --target install
|