123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- #[==[
- Provides the following variables:
- * `NetCDF_FOUND`: Whether NetCDF was found or not.
- * `NetCDF_INCLUDE_DIRS`: Include directories necessary to use NetCDF.
- * `NetCDF_LIBRARIES`: Libraries necessary to use NetCDF.
- * `NetCDF_VERSION`: The version of NetCDF found.
- * `NetCDF::NetCDF`: A target to use with `target_link_libraries`.
- #]==]
- # Try to find a CMake-built NetCDF.
- find_package(netCDF CONFIG QUIET)
- if (netCDF_FOUND)
- # Forward the variables in a consistent way.
- set(NetCDF_FOUND "${netCDF_FOUND}")
- set(NetCDF_INCLUDE_DIRS "${netCDF_INCLUDE_DIR}")
- set(NetCDF_LIBRARIES "${netCDF_LIBRARIES}")
- set(NetCDF_VERSION "${NetCDFVersion}")
- if (NOT TARGET NetCDF::NetCDF)
- add_library(NetCDF::NetCDF INTERFACE IMPORTED)
- if (TARGET "netCDF::netcdf")
- # 4.7.3
- set_target_properties(NetCDF::NetCDF PROPERTIES
- INTERFACE_LINK_LIBRARIES "netCDF::netcdf")
- elseif (TARGET "netcdf")
- set_target_properties(NetCDF::NetCDF PROPERTIES
- INTERFACE_LINK_LIBRARIES "netcdf")
- else ()
- set_target_properties(NetCDF::NetCDF PROPERTIES
- INTERFACE_LINK_LIBRARIES "${netCDF_LIBRARIES}")
- endif ()
- endif ()
- # Skip the rest of the logic in this file.
- return ()
- endif ()
- find_package(PkgConfig QUIET)
- if (PkgConfig_FOUND)
- pkg_check_modules(_NetCDF QUIET netcdf IMPORTED_TARGET)
- if (_NetCDF_FOUND)
- # Forward the variables in a consistent way.
- set(NetCDF_FOUND "${_NetCDF_FOUND}")
- set(NetCDF_INCLUDE_DIRS "${_NetCDF_INCLUDE_DIRS}")
- set(NetCDF_LIBRARIES "${_NetCDF_LIBRARIES}")
- set(NetCDF_VERSION "${_NetCDF_VERSION}")
- if (NOT TARGET NetCDF::NetCDF)
- add_library(NetCDF::NetCDF INTERFACE IMPORTED)
- set_target_properties(NetCDF::NetCDF PROPERTIES
- INTERFACE_LINK_LIBRARIES "PkgConfig::_NetCDF")
- endif ()
- # Skip the rest of the logic in this file.
- return ()
- endif ()
- endif ()
- find_path(NetCDF_INCLUDE_DIR
- NAMES netcdf.h
- DOC "netcdf include directories")
- mark_as_advanced(NetCDF_INCLUDE_DIR)
- find_library(NetCDF_LIBRARY
- NAMES netcdf
- DOC "netcdf library")
- mark_as_advanced(NetCDF_LIBRARY)
- if (NetCDF_INCLUDE_DIR)
- file(STRINGS "${NetCDF_INCLUDE_DIR}/netcdf_meta.h" _netcdf_version_lines
- REGEX "#define[ \t]+NC_VERSION_(MAJOR|MINOR|PATCH|NOTE)")
- string(REGEX REPLACE ".*NC_VERSION_MAJOR *\([0-9]*\).*" "\\1" _netcdf_version_major "${_netcdf_version_lines}")
- string(REGEX REPLACE ".*NC_VERSION_MINOR *\([0-9]*\).*" "\\1" _netcdf_version_minor "${_netcdf_version_lines}")
- string(REGEX REPLACE ".*NC_VERSION_PATCH *\([0-9]*\).*" "\\1" _netcdf_version_patch "${_netcdf_version_lines}")
- string(REGEX REPLACE ".*NC_VERSION_NOTE *\"\([^\"]*\)\".*" "\\1" _netcdf_version_note "${_netcdf_version_lines}")
- set(NetCDF_VERSION "${_netcdf_version_major}.${_netcdf_version_minor}.${_netcdf_version_patch}${_netcdf_version_note}")
- unset(_netcdf_version_major)
- unset(_netcdf_version_minor)
- unset(_netcdf_version_patch)
- unset(_netcdf_version_note)
- unset(_netcdf_version_lines)
- endif ()
- include(FindPackageHandleStandardArgs)
- find_package_handle_standard_args(NetCDF
- REQUIRED_VARS NetCDF_LIBRARY NetCDF_INCLUDE_DIR
- VERSION_VAR NetCDF_VERSION)
- if (NetCDF_FOUND)
- set(NetCDF_INCLUDE_DIRS "${NetCDF_INCLUDE_DIR}")
- set(NetCDF_LIBRARIES "${NetCDF_LIBRARY}")
- if (NOT TARGET NetCDF::NetCDF)
- add_library(NetCDF::NetCDF UNKNOWN IMPORTED)
- set_target_properties(NetCDF::NetCDF PROPERTIES
- IMPORTED_LOCATION "${NetCDF_LIBRARY}"
- INTERFACE_INCLUDE_DIRECTORIES "${NetCDF_INCLUDE_DIR}")
- endif ()
- endif ()
|