1 |
find_path(NetCDF_INCLUDE_DIR |
2 |
NAMES netcdf.h |
3 |
DOC "netcdf include directories") |
4 |
##mark_as_advanced(NetCDF_INCLUDE_DIR) |
5 |
|
6 |
find_library(NetCDF_LIBRARY |
7 |
NAMES netcdf |
8 |
DOC "netcdf library") |
9 |
##mark_as_advanced(NetCDF_LIBRARY) |
10 |
|
11 |
if (NetCDF_INCLUDE_DIR) |
12 |
file(STRINGS "${NetCDF_INCLUDE_DIR}/netcdf_meta.h" _netcdf_version_lines |
13 |
REGEX "#define[ \t]+NC_VERSION_(MAJOR|MINOR|PATCH|NOTE)") |
14 |
string(REGEX REPLACE ".*NC_VERSION_MAJOR *\([0-9]*\).*" "\\1" _netcdf_version_major "${_netcdf_version_lines}") |
15 |
string(REGEX REPLACE ".*NC_VERSION_MINOR *\([0-9]*\).*" "\\1" _netcdf_version_minor "${_netcdf_version_lines}") |
16 |
string(REGEX REPLACE ".*NC_VERSION_PATCH *\([0-9]*\).*" "\\1" _netcdf_version_patch "${_netcdf_version_lines}") |
17 |
string(REGEX REPLACE ".*NC_VERSION_NOTE *\"\([^\"]*\)\".*" "\\1" _netcdf_version_note "${_netcdf_version_lines}") |
18 |
set(NetCDF_VERSION "${_netcdf_version_major}.${_netcdf_version_minor}.${_netcdf_version_patch}${_netcdf_version_note}") |
19 |
unset(_netcdf_version_major) |
20 |
unset(_netcdf_version_minor) |
21 |
unset(_netcdf_version_patch) |
22 |
unset(_netcdf_version_note) |
23 |
unset(_netcdf_version_lines) |
24 |
endif () |
25 |
|
26 |
include(FindPackageHandleStandardArgs) |
27 |
find_package_handle_standard_args(NetCDF |
28 |
REQUIRED_VARS NetCDF_LIBRARY NetCDF_INCLUDE_DIR |
29 |
VERSION_VAR NetCDF_VERSION) |
30 |
|
31 |
if (NetCDF_FOUND) |
32 |
set(NetCDF_INCLUDE_DIRS "${NetCDF_INCLUDE_DIR}") |
33 |
set(NetCDF_LIBRARIES "${NetCDF_LIBRARY}") |
34 |
|
35 |
if (NOT TARGET NetCDF::NetCDF) |
36 |
add_library(NetCDF::NetCDF UNKNOWN IMPORTED) |
37 |
set_target_properties(NetCDF::NetCDF PROPERTIES |
38 |
IMPORTED_LOCATION "${NetCDF_LIBRARY}" |
39 |
INTERFACE_INCLUDE_DIRECTORIES "${NetCDF_INCLUDE_DIR}") |
40 |
endif () |
41 |
endif () |