Some more work on the new dependency resolution system.
This commit is contained in:
@@ -1,6 +1,28 @@
|
||||
|
||||
import re
|
||||
from SCons.Script import *
|
||||
|
||||
_REPO_NAME = 'libpng'
|
||||
_REPO_URL = 'https://git.code.sf.net/p/libpng/code.git'
|
||||
_TAG_PATTERN = re.compile(r'^v([0-9])+\.([0-9])+\.([0-9])$')
|
||||
|
||||
def available(env: Environment) -> bool:
|
||||
return hasattr(env, 'GitBranch') and hasattr(env, 'GitTags')
|
||||
|
||||
def versions(env: Environment, update: bool = False) -> 'list[str]':
|
||||
tags = env.GitTags(repo_name = _REPO_NAME, remote_url = _REPO_URL, force_fetch=update)
|
||||
result = []
|
||||
for tag in tags:
|
||||
match = _TAG_PATTERN.match(tag)
|
||||
if match:
|
||||
result.append((int(match.groups()[0]), int(match.groups()[1]), int(match.groups()[2])))
|
||||
return result
|
||||
|
||||
def dependencies(env: Environment, version) -> 'list[dict]':
|
||||
return {
|
||||
'zlib': {}
|
||||
}
|
||||
|
||||
def cook(env: Environment, git_ref = 'master') -> dict:
|
||||
lib_z = env.Cook('zlib')
|
||||
repo = env.GitBranch(repo_name = 'libpng', remote_url = 'https://git.code.sf.net/p/libpng/code.git', git_ref = git_ref)
|
||||
|
||||
Reference in New Issue
Block a user