Add support for finding cmake files.
This commit is contained in:
parent
de2c26664e
commit
e1b8a90747
3 changed files with 20 additions and 0 deletions
|
@ -56,6 +56,7 @@ from buildlog_consultant.common import (
|
|||
GnomeCommonMissing,
|
||||
MissingGnomeCommonDependency,
|
||||
UnknownCertificateAuthority,
|
||||
CMakeFilesMissing,
|
||||
MissingLibtool,
|
||||
MissingQt,
|
||||
MissingX11,
|
||||
|
@ -80,6 +81,7 @@ from .requirements import (
|
|||
XmlEntityRequirement,
|
||||
SprocketsFileRequirement,
|
||||
JavaClassRequirement,
|
||||
CMakefileRequirement,
|
||||
HaskellPackageRequirement,
|
||||
MavenArtifactRequirement,
|
||||
GnomeCommonRequirement,
|
||||
|
@ -140,6 +142,8 @@ def problem_to_upstream_requirement(problem): # noqa: C901
|
|||
return SprocketsFileRequirement(problem.content_type, problem.name)
|
||||
elif isinstance(problem, MissingJavaClass):
|
||||
return JavaClassRequirement(problem.classname)
|
||||
elif isinstance(problem, CMakeFilesMissing):
|
||||
return [CMakefileRequirement(filename) for filename in problem.filenames]
|
||||
elif isinstance(problem, MissingHaskellDependencies):
|
||||
return [HaskellPackageRequirement.from_string(dep) for dep in problem.deps]
|
||||
elif isinstance(problem, MissingMavenArtifacts):
|
||||
|
|
|
@ -453,6 +453,15 @@ class JavaClassRequirement(Requirement):
|
|||
self.classname = classname
|
||||
|
||||
|
||||
class CMakefileRequirement(Requirement):
|
||||
|
||||
filename: str
|
||||
|
||||
def __init__(self, filename: str):
|
||||
super(CMakefileRequirement, self).__init__("cmake-file")
|
||||
self.filename = filename
|
||||
|
||||
|
||||
class HaskellPackageRequirement(Requirement):
|
||||
|
||||
package: str
|
||||
|
|
|
@ -51,6 +51,7 @@ from ..requirements import (
|
|||
XmlEntityRequirement,
|
||||
SprocketsFileRequirement,
|
||||
JavaClassRequirement,
|
||||
CMakefileRequirement,
|
||||
HaskellPackageRequirement,
|
||||
MavenArtifactRequirement,
|
||||
GnomeCommonRequirement,
|
||||
|
@ -478,6 +479,11 @@ def resolve_java_class_req(apt_mgr, req):
|
|||
return find_reqs_simple(apt_mgr, [classpath])
|
||||
|
||||
|
||||
def resolve_cmake_file_req(apt_mgr, req):
|
||||
paths = ['/usr/lib/.*/cmake/.*/%s' % re.escape(req.filename)]
|
||||
return find_reqs_simple(apt_mgr, paths, regex=True)
|
||||
|
||||
|
||||
def resolve_haskell_package_req(apt_mgr, req):
|
||||
path = "/var/lib/ghc/package\\.conf\\.d/%s-.*\\.conf" % re.escape(req.deps[0][0])
|
||||
return find_reqs_simple(apt_mgr, [path], regex=True)
|
||||
|
@ -645,6 +651,7 @@ APT_REQUIREMENT_RESOLVERS = [
|
|||
(XmlEntityRequirement, resolve_xml_entity_req),
|
||||
(SprocketsFileRequirement, resolve_sprockets_file_req),
|
||||
(JavaClassRequirement, resolve_java_class_req),
|
||||
(CMakefileRequirement, resolve_cmake_file_req),
|
||||
(HaskellPackageRequirement, resolve_haskell_package_req),
|
||||
(MavenArtifactRequirement, resolve_maven_artifact_req),
|
||||
(GnomeCommonRequirement, resolve_gnome_common_req),
|
||||
|
|
Loading…
Add table
Reference in a new issue