Tweak formatting of base dependency file.
This commit is contained in:
parent
d3caadb675
commit
8731e00ada
|
@ -12,24 +12,28 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# This file contains the detection logic for external
|
||||
# dependencies. Mostly just uses pkg-config but also contains
|
||||
# custom logic for packages that don't provide them.
|
||||
|
||||
# Currently one file, should probably be split into a
|
||||
# package before this gets too big.
|
||||
# This file contains the detection logic for external dependencies.
|
||||
# Custom logic for several other packages are in separate files.
|
||||
|
||||
import os
|
||||
import shutil
|
||||
import stat
|
||||
import sys
|
||||
import os, stat, shutil
|
||||
from enum import Enum
|
||||
|
||||
from .. import mlog
|
||||
from .. import mesonlib
|
||||
from ..mesonlib import MesonException, flatten, version_compare_many, Popen_safe
|
||||
from ..mesonlib import MesonException, Popen_safe, flatten, version_compare_many
|
||||
|
||||
|
||||
# This must be defined in this file to avoid cyclical references.
|
||||
packages = {}
|
||||
|
||||
|
||||
class DependencyException(MesonException):
|
||||
'''Exceptions raised while trying to find dependencies'''
|
||||
|
||||
|
||||
class DependencyMethods(Enum):
|
||||
# Auto means to use whatever dependency checking mechanisms in whatever order meson thinks is best.
|
||||
AUTO = 'auto'
|
||||
|
@ -44,6 +48,7 @@ class DependencyMethods(Enum):
|
|||
# Detect using the sysconfig module.
|
||||
SYSCONFIG = 'sysconfig'
|
||||
|
||||
|
||||
class Dependency:
|
||||
def __init__(self, type_name, kwargs):
|
||||
self.name = "null"
|
||||
|
@ -59,7 +64,10 @@ class Dependency:
|
|||
elif method in self.get_methods():
|
||||
self.methods = [method]
|
||||
else:
|
||||
raise MesonException('Unsupported detection method: {}, allowed methods are {}'.format(method.value, mlog.format_list(map(lambda x: x.value, [DependencyMethods.AUTO] + self.get_methods()))))
|
||||
raise MesonException(
|
||||
'Unsupported detection method: {}, allowed methods are {}'.format(
|
||||
method.value,
|
||||
mlog.format_list(map(lambda x: x.value, [DependencyMethods.AUTO] + self.get_methods()))))
|
||||
|
||||
def __repr__(self):
|
||||
s = '<{0} {1}: {2}>'
|
||||
|
@ -94,6 +102,7 @@ class Dependency:
|
|||
def get_pkgconfig_variable(self, variable_name):
|
||||
raise MesonException('Tried to get a pkg-config variable from a non-pkgconfig dependency.')
|
||||
|
||||
|
||||
class InternalDependency(Dependency):
|
||||
def __init__(self, version, incdirs, compile_args, link_args, libraries, sources, ext_deps):
|
||||
super().__init__('internal', {})
|
||||
|
@ -115,6 +124,7 @@ class InternalDependency(Dependency):
|
|||
def get_version(self):
|
||||
return self.version
|
||||
|
||||
|
||||
class PkgConfigDependency(Dependency):
|
||||
# The class's copy of the pkg-config path. Avoids having to search for it
|
||||
# multiple times in the same Meson invocation.
|
||||
|
@ -489,6 +499,7 @@ class ExternalProgram:
|
|||
def get_name(self):
|
||||
return self.name
|
||||
|
||||
|
||||
class ExternalLibrary(Dependency):
|
||||
# TODO: Add `language` support to all Dependency objects so that languages
|
||||
# can be exposed for dependencies that support that (i.e., not pkg-config)
|
||||
|
@ -596,6 +607,7 @@ def get_dep_identifier(name, kwargs, want_cross):
|
|||
identifier += (key, value)
|
||||
return identifier
|
||||
|
||||
|
||||
def find_external_dependency(name, environment, kwargs):
|
||||
required = kwargs.get('required', True)
|
||||
if not isinstance(required, bool):
|
||||
|
@ -627,8 +639,3 @@ def find_external_dependency(name, environment, kwargs):
|
|||
raise pkg_exc
|
||||
mlog.log('Dependency', mlog.bold(name), 'found:', mlog.red('NO'))
|
||||
return pkgdep
|
||||
|
||||
|
||||
# This has to be at the end so the classes it references
|
||||
# are defined.
|
||||
packages = {}
|
||||
|
|
Loading…
Reference in New Issue