Update to new recipe system (S++ 2.0).
This commit is contained in:
@@ -1,13 +1,52 @@
|
||||
|
||||
import re
|
||||
from SCons.Script import *
|
||||
|
||||
def cook(env: Environment, remote: str = 'github', git_ref: str = "master") -> dict:
|
||||
if remote == 'mewin':
|
||||
repo = env.GitBranch(repo_name = 'glm_mewin', remote_url = 'https://git.mewin.de/mewin/glm.git', git_ref = git_ref)
|
||||
else:
|
||||
repo = env.GitBranch(repo_name = 'glm', remote_url = 'https://github.com/g-truc/glm.git', git_ref = git_ref)
|
||||
checkout_root = repo['checkout_root']
|
||||
_REPO_NAMES = {
|
||||
'default': 'glm',
|
||||
'mewin': 'glm_mewin'
|
||||
}
|
||||
_REPO_URLS = {
|
||||
'default': 'https://github.com/g-truc/glm.git',
|
||||
'mewin': 'https://git.mewin.de/mewin/glm.git'
|
||||
}
|
||||
_TAG_PATTERN = re.compile(r'^([0-9]+)\.([0-9]+)\.([0-9]+)$')
|
||||
_TAG_PATTERN_ALT = re.compile(r'^0\.([0-9]+)\.([0-9]+)\.([0-9]+)$')
|
||||
|
||||
def _get_repo_name(env: Environment) -> str:
|
||||
return _REPO_NAMES[env.get('GLM_REMOTE', 'default')]
|
||||
|
||||
def _get_repo_url(env: Environment) -> str:
|
||||
return _REPO_URLS[env.get('GLM_REMOTE', 'default')]
|
||||
|
||||
def versions(env: Environment, update: bool = False):
|
||||
if env.get('GLM_REMOTE') == 'mewin':
|
||||
return [(0, 0, 0)]
|
||||
|
||||
tags = env.GitTags(repo_name = _get_repo_name(env), remote_url = _get_repo_url(env), 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])))
|
||||
else:
|
||||
match = _TAG_PATTERN_ALT.match(tag)
|
||||
if match:
|
||||
result.append((0, int(match.groups()[0]), int(match.groups()[1]) * 10 + int(match.groups()[2])))
|
||||
return result
|
||||
|
||||
def dependencies(env: Environment, version) -> 'dict':
|
||||
return {}
|
||||
|
||||
def cook(env: Environment, version) -> dict:
|
||||
if env.get('GLM_REMOTE') == 'mewin':
|
||||
git_ref = 'master'
|
||||
elif version[0] == 0:
|
||||
git_ref = f'refs/tags/0.{version[1]}.{int(version[2]/10)}.{version[2]%10}'
|
||||
else:
|
||||
git_ref = f'refs/tags/{version[0]}.{version[1]}.{version[2]}'
|
||||
repo = env.GitBranch(repo_name = _get_repo_name(env), remote_url = _get_repo_url(env), git_ref = git_ref)
|
||||
checkout_root = repo['checkout_root']
|
||||
return {
|
||||
'CPPPATH': [checkout_root],
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user