Use resolver in more cases.

This commit is contained in:
Jelmer Vernooij 2021-02-24 01:28:49 +00:00
parent 9064024b83
commit 5beef23fc8
4 changed files with 627 additions and 376 deletions

View file

@ -16,6 +16,9 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
import posixpath
from typing import Optional, List, Tuple
from . import UpstreamRequirement
@ -62,3 +65,182 @@ class CargoCrateRequirement(UpstreamRequirement):
def __init__(self, crate):
super(CargoCrateRequirement, self).__init__('cargo-crate')
self.crate = crate
class PkgConfigRequirement(UpstreamRequirement):
module: str
def __init__(self, module, minimum_version=None):
super(PkgConfigRequirement, self).__init__('pkg-config')
self.module = module
self.minimum_version = minimum_version
class PathRequirement(UpstreamRequirement):
path: str
def __init__(self, path):
super(PathRequirement, self).__init__('path')
self.path = path
class CHeaderRequirement(UpstreamRequirement):
header: str
def __init__(self, header):
super(CHeaderRequirement, self).__init__('c-header')
self.header = header
class JavaScriptRuntimeRequirement(UpstreamRequirement):
def __init__(self):
super(JavaScriptRuntimeRequirement, self).__init__(
'javascript-runtime')
class ValaPackageRequirement(UpstreamRequirement):
package: str
def __init__(self, package: str):
super(ValaPackageRequirement, self).__init__('vala')
self.package = package
class RubyGemRequirement(UpstreamRequirement):
gem: str
minimum_version: Optional[str]
def __init__(self, gem: str, minimum_version: Optional[str]):
super(RubyGemRequirement, self).__init__('gem')
self.gem = gem
self.minimum_version = minimum_version
class GoPackageRequirement(UpstreamRequirement):
package: str
def __init__(self, package: str):
super(GoPackageRequirement, self).__init__('go')
self.package = package
class DhAddonRequirement(UpstreamRequirement):
path: str
def __init__(self, path: str):
super(DhAddonRequirement, self).__init__('dh-addon')
self.path = path
class PhpClassRequirement(UpstreamRequirement):
php_class: str
def __init__(self, php_class: str):
super(PhpClassRequirement, self).__init__('php-class')
self.php_class = php_class
class RPackageRequirement(UpstreamRequirement):
package: str
minimum_version: Optional[str]
def __init__(self, package: str, minimum_version: Optional[str] = None):
super(RPackageRequirement, self).__init__('r-package')
self.package = package
self.minimum_version = minimum_version
class LibraryRequirement(UpstreamRequirement):
library: str
def __init__(self, library: str):
super(LibraryRequirement, self).__init__('lib')
self.library = library
class RubyFileRequirement(UpstreamRequirement):
filename: str
def __init__(self, filename: str):
super(RubyFileRequirement, self).__init__('ruby-file')
self.filename = filename
class XmlEntityRequirement(UpstreamRequirement):
url: str
def __init__(self, url: str):
super(XmlEntityRequirement, self).__init__('xml-entity')
self.url = url
class SprocketsFileRequirement(UpstreamRequirement):
content_type: str
name: str
def __init__(self, content_type: str, name: str):
super(SprocketsFileRequirement, self).__init__('sprockets-file')
self.content_type = content_type
self.name = name
class JavaClassRequirement(UpstreamRequirement):
classname: str
def __init__(self, classname: str):
super(JavaClassRequirement, self).__init__('java-class')
self.classname = classname
class HaskellPackageRequirement(UpstreamRequirement):
package: str
def __init__(self, package: str):
super(HaskellPackageRequirement, self).__init__('haskell-package')
self.package = package
class MavenArtifactRequirement(UpstreamRequirement):
artifacts: List[Tuple[str, str, str]]
def __init__(self, artifacts):
super(MavenArtifactRequirement, self).__init__('maven-artifact')
self.artifacts = artifacts
class GnomeCommonRequirement(UpstreamRequirement):
def __init__(self):
super(GnomeCommonRequirement, self).__init__('gnome-common')
class JDKFileRequirement(UpstreamRequirement):
jdk_path: str
filename: str
def __init__(self, jdk_path: str, filename: str):
super(JDKFileRequirement, self).__init__('jdk-file')
self.jdk_path = jdk_path
self.filename = filename
@property
def path(self):
return posixpath.join(self.jdk_path, self.filename)