aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/dependencies/base.py32
-rw-r--r--mesonbuild/dependencies/boost.py2
-rw-r--r--mesonbuild/dependencies/coarrays.py2
-rw-r--r--mesonbuild/dependencies/cuda.py2
-rw-r--r--mesonbuild/dependencies/dev.py10
-rw-r--r--mesonbuild/dependencies/hdf5.py2
-rw-r--r--mesonbuild/dependencies/misc.py30
-rw-r--r--mesonbuild/dependencies/mpi.py2
-rw-r--r--mesonbuild/dependencies/platform.py2
-rw-r--r--mesonbuild/dependencies/scalapack.py2
-rw-r--r--mesonbuild/dependencies/ui.py25
-rw-r--r--mesonbuild/modules/python.py2
12 files changed, 55 insertions, 58 deletions
diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py
index 7e563d6..db8a0a6 100644
--- a/mesonbuild/dependencies/base.py
+++ b/mesonbuild/dependencies/base.py
@@ -261,7 +261,7 @@ class HasNativeKwarg:
return MachineChoice.BUILD if kwargs.get('native', False) else MachineChoice.HOST
class ExternalDependency(Dependency, HasNativeKwarg):
- def __init__(self, type_name, environment, language, kwargs):
+ def __init__(self, type_name, environment, kwargs, language: T.Optional[str] = None):
Dependency.__init__(self, type_name, kwargs)
self.env = environment
self.name = type_name # default
@@ -383,8 +383,8 @@ class ConfigToolDependency(ExternalDependency):
tool_name = None
__strip_version = re.compile(r'^[0-9.]*')
- def __init__(self, name, environment, language, kwargs):
- super().__init__('config-tool', environment, language, kwargs)
+ def __init__(self, name, environment, kwargs, language: T.Optional[str] = None):
+ super().__init__('config-tool', environment, kwargs, language=language)
self.name = name
self.tools = listify(kwargs.get('tools', self.tools))
@@ -426,7 +426,7 @@ class ConfigToolDependency(ExternalDependency):
sub = type('{}Dependency'.format(name.capitalize()), (cls, ),
{'tools': tools, 'tool_name': tool_name, '__reduce__': reduce, 'finish_init': staticmethod(finish_init)})
- return sub(name, environment, language, kwargs)
+ return sub(name, environment, kwargs, language=language)
@classmethod
def _unpickle(cls):
@@ -563,8 +563,8 @@ class PkgConfigDependency(ExternalDependency):
# We cache all pkg-config subprocess invocations to avoid redundant calls
pkgbin_cache = {}
- def __init__(self, name, environment, kwargs, language=None):
- super().__init__('pkgconfig', environment, language, kwargs)
+ def __init__(self, name, environment, kwargs, language: T.Optional[str] = None):
+ super().__init__('pkgconfig', environment, kwargs, language=language)
self.name = name
self.is_libtool = False
# Store a copy of the pkg-config path on the object itself so it is
@@ -1043,7 +1043,7 @@ class CMakeDependency(ExternalDependency):
# one module
return module
- def __init__(self, name: str, environment: Environment, kwargs, language: str = None):
+ def __init__(self, name: str, environment: Environment, kwargs, language: T.Optional[str] = None):
# Gather a list of all languages to support
self.language_list = [] # type: T.List[str]
if language is None:
@@ -1065,7 +1065,7 @@ class CMakeDependency(ExternalDependency):
# Ensure that the list is unique
self.language_list = list(set(self.language_list))
- super().__init__('cmake', environment, language, kwargs)
+ super().__init__('cmake', environment, kwargs, language=language)
self.name = name
self.is_libtool = False
# Store a copy of the CMake path on the object itself so it is
@@ -1566,7 +1566,7 @@ class DubDependency(ExternalDependency):
class_dubbin = None
def __init__(self, name, environment, kwargs):
- super().__init__('dub', environment, 'd', kwargs)
+ super().__init__('dub', environment, kwargs, language='d')
self.name = name
self.compiler = super().get_compiler()
self.module_path = None
@@ -2028,7 +2028,7 @@ class EmptyExternalProgram(ExternalProgram): # lgtm [py/missing-call-to-init]
class ExternalLibrary(ExternalDependency):
def __init__(self, name, link_args, environment, language, silent=False):
- super().__init__('library', environment, language, {})
+ super().__init__('library', environment, {}, language=language)
self.name = name
self.language = language
self.is_found = False
@@ -2070,10 +2070,10 @@ class ExternalLibrary(ExternalDependency):
class ExtraFrameworkDependency(ExternalDependency):
system_framework_paths = None
- def __init__(self, name, required, paths, env, lang, kwargs):
- super().__init__('extraframeworks', env, lang, kwargs)
+ def __init__(self, name, env, kwargs, language: T.Optional[str] = None):
+ paths = kwargs.get('paths', [])
+ super().__init__('extraframeworks', env, kwargs, language=language)
self.name = name
- self.required = required
# Full path to framework directory
self.framework_path = None
if not self.clib_compiler:
@@ -2321,8 +2321,7 @@ def _build_external_dependency_list(name, env: Environment, kwargs: T.Dict[str,
if 'extraframework' == kwargs.get('method', ''):
# On OSX, also try framework dependency detector
if mesonlib.is_osx():
- candidates.append(functools.partial(ExtraFrameworkDependency, name,
- False, None, env, None, kwargs))
+ candidates.append(functools.partial(ExtraFrameworkDependency, name, env, kwargs))
return candidates
# Otherwise, just use the pkgconfig and cmake dependency detector
@@ -2331,8 +2330,7 @@ def _build_external_dependency_list(name, env: Environment, kwargs: T.Dict[str,
# On OSX, also try framework dependency detector
if mesonlib.is_osx():
- candidates.append(functools.partial(ExtraFrameworkDependency, name,
- False, None, env, None, kwargs))
+ candidates.append(functools.partial(ExtraFrameworkDependency, name, env, kwargs))
# Only use CMake as a last resort, since it might not work 100% (see #6113)
candidates.append(functools.partial(CMakeDependency, name, env, kwargs))
diff --git a/mesonbuild/dependencies/boost.py b/mesonbuild/dependencies/boost.py
index 340a5a9..0f7216f 100644
--- a/mesonbuild/dependencies/boost.py
+++ b/mesonbuild/dependencies/boost.py
@@ -97,7 +97,7 @@ from .misc import ThreadDependency
class BoostDependency(ExternalDependency):
def __init__(self, environment, kwargs):
- super().__init__('boost', environment, 'cpp', kwargs)
+ super().__init__('boost', environment, kwargs, language='cpp')
self.need_static_link = ['boost_exception', 'boost_test_exec_monitor']
self.is_debug = environment.coredata.get_builtin_option('buildtype').startswith('debug')
threading = kwargs.get("threading", "multi")
diff --git a/mesonbuild/dependencies/coarrays.py b/mesonbuild/dependencies/coarrays.py
index b0b6cf4..7f0b30e 100644
--- a/mesonbuild/dependencies/coarrays.py
+++ b/mesonbuild/dependencies/coarrays.py
@@ -26,7 +26,7 @@ class CoarrayDependency(ExternalDependency):
low-level MPI calls.
"""
def __init__(self, environment, kwargs: dict):
- super().__init__('coarray', environment, 'fortran', kwargs)
+ super().__init__('coarray', environment, kwargs, language='fortran')
kwargs['required'] = False
kwargs['silent'] = True
self.is_found = False
diff --git a/mesonbuild/dependencies/cuda.py b/mesonbuild/dependencies/cuda.py
index 7048e81..9c189be 100644
--- a/mesonbuild/dependencies/cuda.py
+++ b/mesonbuild/dependencies/cuda.py
@@ -33,7 +33,7 @@ class CudaDependency(ExternalDependency):
if language not in self.supported_languages:
raise DependencyException('Language \'{}\' is not supported by the CUDA Toolkit. Supported languages are {}.'.format(language, self.supported_languages))
- super().__init__('cuda', environment, language, kwargs)
+ super().__init__('cuda', environment, kwargs, language=language)
self.requested_modules = self.get_requested(kwargs)
if 'cudart' not in self.requested_modules:
self.requested_modules = ['cudart'] + self.requested_modules
diff --git a/mesonbuild/dependencies/dev.py b/mesonbuild/dependencies/dev.py
index 0488b2b..da19e90 100644
--- a/mesonbuild/dependencies/dev.py
+++ b/mesonbuild/dependencies/dev.py
@@ -46,7 +46,7 @@ def get_shared_library_suffix(environment, for_machine: MachineChoice):
class GTestDependency(ExternalDependency):
def __init__(self, environment, kwargs):
- super().__init__('gtest', environment, 'cpp', kwargs)
+ super().__init__('gtest', environment, kwargs, language='cpp')
self.main = kwargs.get('main', False)
self.src_dirs = ['/usr/src/gtest/src', '/usr/src/googletest/googletest/src']
self.detect()
@@ -119,7 +119,7 @@ class GTestDependency(ExternalDependency):
class GMockDependency(ExternalDependency):
def __init__(self, environment, kwargs):
- super().__init__('gmock', environment, 'cpp', kwargs)
+ super().__init__('gmock', environment, kwargs, language='cpp')
self.main = kwargs.get('main', False)
self._add_sub_dependency(ThreadDependency, environment, kwargs)
@@ -218,7 +218,7 @@ class LLVMDependencyConfigTool(ConfigToolDependency):
# It's necessary for LLVM <= 3.8 to use the C++ linker. For 3.9 and 4.0
# the C linker works fine if only using the C API.
- super().__init__('LLVM', environment, 'cpp', kwargs)
+ super().__init__('LLVM', environment, kwargs, language='cpp')
self.provided_modules = []
self.required_modules = set()
self.module_details = []
@@ -394,7 +394,7 @@ class LLVMDependencyCMake(CMakeDependency):
def __init__(self, env, kwargs):
self.llvm_modules = stringlistify(extract_as_list(kwargs, 'modules'))
self.llvm_opt_modules = stringlistify(extract_as_list(kwargs, 'optional_modules'))
- super().__init__(name='LLVM', environment=env, language='cpp', kwargs=kwargs)
+ super().__init__('LLVM', env, kwargs, language='cpp')
if self.traceparser is None:
return
@@ -435,7 +435,7 @@ class LLVMDependencyCMake(CMakeDependency):
class LLVMDependency(ExternalDependency):
def __init__(self, env, kwargs):
- super().__init__('LLVM', env, 'cpp', kwargs)
+ super().__init__('LLVM', env, kwargs, language='cpp')
@classmethod
def _factory(cls, env, kwargs):
diff --git a/mesonbuild/dependencies/hdf5.py b/mesonbuild/dependencies/hdf5.py
index 3bb1fda..fadd109 100644
--- a/mesonbuild/dependencies/hdf5.py
+++ b/mesonbuild/dependencies/hdf5.py
@@ -27,7 +27,7 @@ class HDF5Dependency(ExternalDependency):
def __init__(self, environment, kwargs):
language = kwargs.get('language', 'c')
- super().__init__('hdf5', environment, language, kwargs)
+ super().__init__('hdf5', environment, kwargs, language=language)
kwargs['required'] = False
kwargs['silent'] = True
self.is_found = False
diff --git a/mesonbuild/dependencies/misc.py b/mesonbuild/dependencies/misc.py
index fd480c1..d4a505d 100644
--- a/mesonbuild/dependencies/misc.py
+++ b/mesonbuild/dependencies/misc.py
@@ -35,7 +35,7 @@ class NetCDFDependency(ExternalDependency):
def __init__(self, environment, kwargs):
language = kwargs.get('language', 'c')
- super().__init__('netcdf', environment, language, kwargs)
+ super().__init__('netcdf', environment, kwargs, language=language)
kwargs['required'] = False
kwargs['silent'] = True
self.is_found = False
@@ -94,7 +94,7 @@ class OpenMPDependency(ExternalDependency):
def __init__(self, environment, kwargs):
language = kwargs.get('language')
- super().__init__('openmp', environment, language, kwargs)
+ super().__init__('openmp', environment, kwargs, language=language)
self.is_found = False
if self.clib_compiler.get_id() == 'pgi':
# through at least PGI 19.4, there is no macro defined for OpenMP, but OpenMP 3.1 is supported.
@@ -125,7 +125,7 @@ class OpenMPDependency(ExternalDependency):
class ThreadDependency(ExternalDependency):
def __init__(self, environment, kwargs):
- super().__init__('threads', environment, None, kwargs)
+ super().__init__('threads', environment, kwargs)
self.name = 'threads'
self.is_found = False
methods = listify(self.methods)
@@ -159,7 +159,7 @@ class ThreadDependency(ExternalDependency):
class BlocksDependency(ExternalDependency):
def __init__(self, environment, kwargs):
- super().__init__('blocks', environment, None, kwargs)
+ super().__init__('blocks', environment, kwargs)
self.name = 'blocks'
self.is_found = False
@@ -192,7 +192,7 @@ class BlocksDependency(ExternalDependency):
class Python3Dependency(ExternalDependency):
def __init__(self, environment, kwargs):
- super().__init__('python3', environment, None, kwargs)
+ super().__init__('python3', environment, kwargs)
if not environment.machines.matches_build_machine(self.for_machine):
return
@@ -219,9 +219,10 @@ class Python3Dependency(ExternalDependency):
# number in its name.
# There is a python in /System/Library/Frameworks, but that's
# python 2, Python 3 will always be in /Library
+ _kargs = kwargs.copy()
+ _kargs[paths] = ['/Library/Frameworks']
candidates.append(functools.partial(
- ExtraFrameworkDependency, 'Python', False, ['/Library/Frameworks'],
- environment, kwargs.get('language', None), kwargs))
+ ExtraFrameworkDependency, 'Python', environment, _kargs))
return candidates
@@ -325,7 +326,7 @@ class Python3Dependency(ExternalDependency):
class PcapDependency(ExternalDependency):
def __init__(self, environment, kwargs):
- super().__init__('pcap', environment, None, kwargs)
+ super().__init__('pcap', environment, kwargs)
@classmethod
def _factory(cls, environment, kwargs):
@@ -370,7 +371,7 @@ class PcapDependency(ExternalDependency):
class CupsDependency(ExternalDependency):
def __init__(self, environment, kwargs):
- super().__init__('cups', environment, None, kwargs)
+ super().__init__('cups', environment, kwargs)
@classmethod
def _factory(cls, environment, kwargs):
@@ -389,8 +390,7 @@ class CupsDependency(ExternalDependency):
if DependencyMethods.EXTRAFRAMEWORK in methods:
if mesonlib.is_osx():
candidates.append(functools.partial(
- ExtraFrameworkDependency, 'cups', False, None, environment,
- kwargs.get('language', None), kwargs))
+ ExtraFrameworkDependency, 'cups', environment, kwargs))
if DependencyMethods.CMAKE in methods:
candidates.append(functools.partial(CMakeDependency, 'Cups', environment, kwargs))
@@ -412,7 +412,7 @@ class CupsDependency(ExternalDependency):
class LibWmfDependency(ExternalDependency):
def __init__(self, environment, kwargs):
- super().__init__('libwmf', environment, None, kwargs)
+ super().__init__('libwmf', environment, kwargs)
@classmethod
def _factory(cls, environment, kwargs):
@@ -440,7 +440,7 @@ class LibWmfDependency(ExternalDependency):
class LibGCryptDependency(ExternalDependency):
def __init__(self, environment, kwargs):
- super().__init__('libgcrypt', environment, None, kwargs)
+ super().__init__('libgcrypt', environment, kwargs)
@classmethod
def _factory(cls, environment, kwargs):
@@ -471,7 +471,7 @@ class LibGCryptDependency(ExternalDependency):
class GpgmeDependency(ExternalDependency):
def __init__(self, environment, kwargs):
- super().__init__('gpgme', environment, None, kwargs)
+ super().__init__('gpgme', environment, kwargs)
@classmethod
def _factory(cls, environment, kwargs):
@@ -503,7 +503,7 @@ class GpgmeDependency(ExternalDependency):
class ShadercDependency(ExternalDependency):
def __init__(self, environment, kwargs):
- super().__init__('shaderc', environment, None, kwargs)
+ super().__init__('shaderc', environment, kwargs)
static_lib = 'shaderc_combined'
shared_lib = 'shaderc_shared'
diff --git a/mesonbuild/dependencies/mpi.py b/mesonbuild/dependencies/mpi.py
index 0754712..59ba0cd 100644
--- a/mesonbuild/dependencies/mpi.py
+++ b/mesonbuild/dependencies/mpi.py
@@ -29,7 +29,7 @@ class MPIDependency(ExternalDependency):
def __init__(self, environment, kwargs: dict):
language = kwargs.get('language', 'c')
- super().__init__('mpi', environment, language, kwargs)
+ super().__init__('mpi', environment, kwargs, language=language)
kwargs['required'] = False
kwargs['silent'] = True
self.is_found = False
diff --git a/mesonbuild/dependencies/platform.py b/mesonbuild/dependencies/platform.py
index e913ed4..6a32e36 100644
--- a/mesonbuild/dependencies/platform.py
+++ b/mesonbuild/dependencies/platform.py
@@ -20,7 +20,7 @@ from ..mesonlib import MesonException
class AppleFrameworks(ExternalDependency):
def __init__(self, env, kwargs):
- super().__init__('appleframeworks', env, None, kwargs)
+ super().__init__('appleframeworks', env, kwargs)
modules = kwargs.get('modules', [])
if isinstance(modules, str):
modules = [modules]
diff --git a/mesonbuild/dependencies/scalapack.py b/mesonbuild/dependencies/scalapack.py
index 8a58402..83f175c 100644
--- a/mesonbuild/dependencies/scalapack.py
+++ b/mesonbuild/dependencies/scalapack.py
@@ -21,7 +21,7 @@ from .base import CMakeDependency, DependencyMethods, ExternalDependency, PkgCon
class ScalapackDependency(ExternalDependency):
def __init__(self, environment, kwargs: dict):
- super().__init__('scalapack', environment, None, kwargs)
+ super().__init__('scalapack', environment, kwargs)
kwargs['required'] = False
kwargs['silent'] = True
self.is_found = False
diff --git a/mesonbuild/dependencies/ui.py b/mesonbuild/dependencies/ui.py
index c953951..38c51b8 100644
--- a/mesonbuild/dependencies/ui.py
+++ b/mesonbuild/dependencies/ui.py
@@ -18,6 +18,7 @@ import functools
import os
import re
import subprocess
+import typing as T
from collections import OrderedDict
from .. import mlog
@@ -35,7 +36,7 @@ from .base import ConfigToolDependency, process_method_kw
class GLDependency(ExternalDependency):
def __init__(self, environment, kwargs):
- super().__init__('gl', environment, None, kwargs)
+ super().__init__('gl', environment, kwargs)
if self.env.machines[self.for_machine].is_darwin():
self.is_found = True
@@ -79,7 +80,7 @@ class GnuStepDependency(ConfigToolDependency):
tool_name = 'gnustep-config'
def __init__(self, environment, kwargs):
- super().__init__('gnustep', environment, 'objc', kwargs)
+ super().__init__('gnustep', environment, kwargs, language='objc')
if not self.is_found:
return
self.modules = kwargs.get('modules', [])
@@ -176,8 +177,8 @@ def _qt_get_private_includes(mod_inc_dir, module, mod_version):
os.path.join(private_dir, 'Qt' + module))
class QtExtraFrameworkDependency(ExtraFrameworkDependency):
- def __init__(self, name, required, paths, env, lang, kwargs):
- super().__init__(name, required, paths, env, lang, kwargs)
+ def __init__(self, name, env, kwargs, language: T.Optional[str] = None):
+ super().__init__(name, env, kwargs, language=language)
self.mod_name = name[2:]
def get_compile_args(self, with_private_headers=False, qt_version="0"):
@@ -191,7 +192,7 @@ class QtExtraFrameworkDependency(ExtraFrameworkDependency):
class QtBaseDependency(ExternalDependency):
def __init__(self, name, env, kwargs):
- super().__init__(name, env, 'cpp', kwargs)
+ super().__init__(name, env, kwargs, language='cpp')
self.qtname = name.capitalize()
self.qtver = name[-1]
if self.qtver == "4":
@@ -443,12 +444,12 @@ class QtBaseDependency(ExternalDependency):
# ExtraFrameworkDependency doesn't support any methods
fw_kwargs = kwargs.copy()
fw_kwargs.pop('method', None)
+ fw_kwargs['paths'] = [libdir]
for m in modules:
fname = 'Qt' + m
mlog.debug('Looking for qt framework ' + fname)
- fwdep = QtExtraFrameworkDependency(fname, False, [libdir], self.env,
- self.language, fw_kwargs)
+ fwdep = QtExtraFrameworkDependency(fname, self.env, fw_kwargs, language=self.language)
self.compile_args.append('-F' + libdir)
if fwdep.found():
self.compile_args += fwdep.get_compile_args(with_private_headers=self.private_headers,
@@ -528,7 +529,7 @@ class Qt5Dependency(QtBaseDependency):
# sdl2-config, pkg-config and OSX framework
class SDL2Dependency(ExternalDependency):
def __init__(self, environment, kwargs):
- super().__init__('sdl2', environment, None, kwargs)
+ super().__init__('sdl2', environment, kwargs)
@classmethod
def _factory(cls, environment, kwargs):
@@ -546,9 +547,7 @@ class SDL2Dependency(ExternalDependency):
if DependencyMethods.EXTRAFRAMEWORK in methods:
if mesonlib.is_osx():
- candidates.append(functools.partial(ExtraFrameworkDependency,
- 'sdl2', False, None, environment,
- kwargs.get('language', None), kwargs))
+ candidates.append(functools.partial(ExtraFrameworkDependency, 'sdl2', environment, kwargs))
# fwdep.version = '2' # FIXME
return candidates
@@ -571,7 +570,7 @@ class WxDependency(ConfigToolDependency):
tool_name = 'wx-config'
def __init__(self, environment, kwargs):
- super().__init__('WxWidgets', environment, None, kwargs)
+ super().__init__('WxWidgets', environment, kwargs)
if not self.is_found:
return
self.requested_modules = self.get_requested(kwargs)
@@ -593,7 +592,7 @@ class WxDependency(ConfigToolDependency):
class VulkanDependency(ExternalDependency):
def __init__(self, environment, kwargs):
- super().__init__('vulkan', environment, None, kwargs)
+ super().__init__('vulkan', environment, kwargs)
try:
self.vulkan_sdk = os.environ['VULKAN_SDK']
diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py
index 1e2b2ee..6644fd2 100644
--- a/mesonbuild/modules/python.py
+++ b/mesonbuild/modules/python.py
@@ -44,7 +44,7 @@ mod_kwargs -= set(['name_prefix', 'name_suffix'])
class PythonDependency(ExternalDependency):
def __init__(self, python_holder, environment, kwargs):
- super().__init__('python', environment, None, kwargs)
+ super().__init__('python', environment, kwargs)
self.name = 'python'
self.static = kwargs.get('static', False)
self.embed = kwargs.get('embed', False)