aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/dependencies/misc.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2019-12-21 23:25:10 +0200
committerGitHub <noreply@github.com>2019-12-21 23:25:10 +0200
commit7981308e6e600535efeba6b50cdda62d43e7c584 (patch)
tree92015ea92f246c309ccbfd0d7486c047ad21a080 /mesonbuild/dependencies/misc.py
parente5297aeca5b384634897dac3f862453a3df71c90 (diff)
parentccbb20e8810986656c01cc417f7d23731b0febdb (diff)
downloadmeson-7981308e6e600535efeba6b50cdda62d43e7c584.zip
meson-7981308e6e600535efeba6b50cdda62d43e7c584.tar.gz
meson-7981308e6e600535efeba6b50cdda62d43e7c584.tar.bz2
Merge pull request #6355 from scivision/depmethod
dependencies: refactor {coarray,mpi,hdf5,netcdf} to use dependency(.., methods: ...)
Diffstat (limited to 'mesonbuild/dependencies/misc.py')
-rw-r--r--mesonbuild/dependencies/misc.py45
1 files changed, 30 insertions, 15 deletions
diff --git a/mesonbuild/dependencies/misc.py b/mesonbuild/dependencies/misc.py
index d773eb7..7088697 100644
--- a/mesonbuild/dependencies/misc.py
+++ b/mesonbuild/dependencies/misc.py
@@ -39,26 +39,41 @@ class NetCDFDependency(ExternalDependency):
kwargs['required'] = False
kwargs['silent'] = True
self.is_found = False
-
- pkgconfig_files = ['netcdf']
+ methods = listify(self.methods)
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()
+ if set([DependencyMethods.AUTO, DependencyMethods.PKGCONFIG]).intersection(methods):
+ pkgconfig_files = ['netcdf']
+
+ 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)
+
+ if set([DependencyMethods.AUTO, DependencyMethods.CMAKE]).intersection(methods):
+ cmakedep = CMakeDependency('NetCDF', environment, kwargs, language=self.language)
+ if cmakedep.found():
+ self.compile_args = cmakedep.get_compile_args()
+ self.link_args = cmakedep.get_link_args()
+ self.version = cmakedep.get_version()
self.is_found = True
- self.pcdep.append(pkgdep)
+ return
+
+ @staticmethod
+ def get_methods():
+ return [DependencyMethods.AUTO, DependencyMethods.PKGCONFIG, DependencyMethods.CMAKE]
class OpenMPDependency(ExternalDependency):