diff options
Diffstat (limited to 'mesonbuild')
-rw-r--r-- | mesonbuild/dependencies/base.py | 32 | ||||
-rw-r--r-- | mesonbuild/dependencies/boost.py | 2 | ||||
-rw-r--r-- | mesonbuild/dependencies/coarrays.py | 2 | ||||
-rw-r--r-- | mesonbuild/dependencies/cuda.py | 2 | ||||
-rw-r--r-- | mesonbuild/dependencies/dev.py | 10 | ||||
-rw-r--r-- | mesonbuild/dependencies/hdf5.py | 2 | ||||
-rw-r--r-- | mesonbuild/dependencies/misc.py | 30 | ||||
-rw-r--r-- | mesonbuild/dependencies/mpi.py | 2 | ||||
-rw-r--r-- | mesonbuild/dependencies/platform.py | 2 | ||||
-rw-r--r-- | mesonbuild/dependencies/scalapack.py | 2 | ||||
-rw-r--r-- | mesonbuild/dependencies/ui.py | 25 | ||||
-rw-r--r-- | mesonbuild/modules/python.py | 2 |
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) |