diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2019-12-21 23:25:10 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-12-21 23:25:10 +0200 |
commit | 7981308e6e600535efeba6b50cdda62d43e7c584 (patch) | |
tree | 92015ea92f246c309ccbfd0d7486c047ad21a080 /mesonbuild/dependencies/misc.py | |
parent | e5297aeca5b384634897dac3f862453a3df71c90 (diff) | |
parent | ccbb20e8810986656c01cc417f7d23731b0febdb (diff) | |
download | meson-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.py | 45 |
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): |