diff options
author | Michael Hirsch, Ph.D <scivision@users.noreply.github.com> | 2019-02-28 15:13:38 -0500 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2019-02-28 22:13:38 +0200 |
commit | 71cffa67fa90c7905fa8333f9895461563e50435 (patch) | |
tree | bb9a0e5263d95f0a5fc95fb785d728e7a6ad32a1 /mesonbuild | |
parent | 939c00a9727e2ce47f320dd02aa3952c146406c7 (diff) | |
download | meson-71cffa67fa90c7905fa8333f9895461563e50435.zip meson-71cffa67fa90c7905fa8333f9895461563e50435.tar.gz meson-71cffa67fa90c7905fa8333f9895461563e50435.tar.bz2 |
add NetCDF
Diffstat (limited to 'mesonbuild')
-rw-r--r-- | mesonbuild/dependencies/__init__.py | 4 | ||||
-rw-r--r-- | mesonbuild/dependencies/base.py | 1 | ||||
-rw-r--r-- | mesonbuild/dependencies/misc.py | 29 |
3 files changed, 33 insertions, 1 deletions
diff --git a/mesonbuild/dependencies/__init__.py b/mesonbuild/dependencies/__init__.py index 71a0bb3..53ff1c9 100644 --- a/mesonbuild/dependencies/__init__.py +++ b/mesonbuild/dependencies/__init__.py @@ -18,7 +18,7 @@ from .base import ( # noqa: F401 ExternalDependency, NotFoundDependency, ExternalLibrary, ExtraFrameworkDependency, InternalDependency, PkgConfigDependency, CMakeDependency, find_external_dependency, get_dep_identifier, packages, _packages_accept_language) from .dev import GMockDependency, GTestDependency, LLVMDependency, ValgrindDependency -from .misc import (CoarrayDependency, HDF5Dependency, MPIDependency, OpenMPDependency, Python3Dependency, ThreadDependency, PcapDependency, CupsDependency, LibWmfDependency, LibGCryptDependency) +from .misc import (CoarrayDependency, HDF5Dependency, MPIDependency, NetCDFDependency, OpenMPDependency, Python3Dependency, ThreadDependency, PcapDependency, CupsDependency, LibWmfDependency, LibGCryptDependency) from .platform import AppleFrameworks from .ui import GLDependency, GnuStepDependency, Qt4Dependency, Qt5Dependency, SDL2Dependency, WxDependency, VulkanDependency @@ -35,6 +35,7 @@ packages.update({ 'coarray': CoarrayDependency, 'mpi': MPIDependency, 'hdf5': HDF5Dependency, + 'netcdf': NetCDFDependency, 'openmp': OpenMPDependency, 'python3': Python3Dependency, 'threads': ThreadDependency, @@ -58,5 +59,6 @@ packages.update({ _packages_accept_language.update({ 'hdf5', 'mpi', + 'netcdf', 'openmp', }) diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py index b9fcc11..6d41ec5 100644 --- a/mesonbuild/dependencies/base.py +++ b/mesonbuild/dependencies/base.py @@ -2286,6 +2286,7 @@ display_name_map = { 'hdf5': 'HDF5', 'llvm': 'LLVM', 'mpi': 'MPI', + 'netcdf': 'NetCDF', 'openmp': 'OpenMP', 'wxwidgets': 'WxWidgets', } diff --git a/mesonbuild/dependencies/misc.py b/mesonbuild/dependencies/misc.py index db83422..df3a053 100644 --- a/mesonbuild/dependencies/misc.py +++ b/mesonbuild/dependencies/misc.py @@ -117,6 +117,35 @@ class HDF5Dependency(ExternalDependency): except Exception: pass +class NetCDFDependency(ExternalDependency): + + def __init__(self, environment, kwargs): + language = kwargs.get('language', 'c') + super().__init__('netcdf', environment, language, kwargs) + kwargs['required'] = False + kwargs['silent'] = True + self.is_found = False + + pkgconfig_files = ['netcdf'] + + if language not in ('c', 'cpp', 'fortran'): + raise DependencyException('Language {} is not supported with NetCDF.'.format(language)) + + if language == 'fortran': + pkgconfig_files.append('netcdf-fortran') + + self.compile_args = [] + self.link_args = [] + self.pcdep = [] + for pkg in pkgconfig_files: + pkgdep = PkgConfigDependency(pkg, environment, kwargs, language=self.language) + if pkgdep.found(): + self.compile_args.extend(pkgdep.get_compile_args()) + self.link_args.extend(pkgdep.get_link_args()) + self.version = pkgdep.get_version() + self.is_found = True + self.pcdep.append(pkgdep) + class MPIDependency(ExternalDependency): def __init__(self, environment, kwargs): |