Added force parameter when fixing git tags so stuff compiles even if tags are updated. Also added the (yet missing) nghttp2 lib as a dependency to CURL if a version >= 8.10.0 is compiled.
This commit is contained in:
parent
5490de84eb
commit
349a08b084
@ -23,7 +23,7 @@ def _git_branch(env: Environment, repo_name: str, remote_url: str, git_ref: str
|
|||||||
worktree_dir = os.path.join(env['CLONE_DIR'], 'git', repo_name, hashlib.shake_128(git_ref.encode('utf-8')).hexdigest(6)) # TODO: commit hash would be better, right? -> not if it's a branch!
|
worktree_dir = os.path.join(env['CLONE_DIR'], 'git', repo_name, hashlib.shake_128(git_ref.encode('utf-8')).hexdigest(6)) # TODO: commit hash would be better, right? -> not if it's a branch!
|
||||||
if not os.path.exists(worktree_dir):
|
if not os.path.exists(worktree_dir):
|
||||||
print(f'Checking out into {worktree_dir}.')
|
print(f'Checking out into {worktree_dir}.')
|
||||||
origin.fetch(tags=True)
|
origin.fetch(tags=True, force=True)
|
||||||
os.makedirs(worktree_dir)
|
os.makedirs(worktree_dir)
|
||||||
repo.git.worktree('add', worktree_dir, git_ref)
|
repo.git.worktree('add', worktree_dir, git_ref)
|
||||||
elif env['UPDATE_REPOSITORIES']:
|
elif env['UPDATE_REPOSITORIES']:
|
||||||
@ -50,13 +50,16 @@ def _make_callable(val):
|
|||||||
if callable(val):
|
if callable(val):
|
||||||
return val
|
return val
|
||||||
else:
|
else:
|
||||||
return lambda env: val
|
def _wrapped(*args, **kwargs):
|
||||||
|
return val
|
||||||
|
return _wrapped
|
||||||
|
|
||||||
def _git_recipe(env: Environment, globals: dict, repo_name, repo_url, cook_fn, versions = None, tag_pattern = None, tag_fn = None, ref_fn = None, dependencies: dict = {}) -> None:
|
def _git_recipe(env: Environment, globals: dict, repo_name, repo_url, cook_fn, versions = None, tag_pattern = None, tag_fn = None, ref_fn = None, dependencies: dict = {}) -> None:
|
||||||
_repo_name = _make_callable(repo_name)
|
_repo_name = _make_callable(repo_name)
|
||||||
_repo_url = _make_callable(repo_url)
|
_repo_url = _make_callable(repo_url)
|
||||||
_tag_pattern = _make_callable(tag_pattern)
|
_tag_pattern = _make_callable(tag_pattern)
|
||||||
versions_cb = versions and _make_callable(versions)
|
versions_cb = versions and _make_callable(versions)
|
||||||
|
dependencies_cb = _make_callable(dependencies)
|
||||||
|
|
||||||
def _versions(env: Environment, update: bool = False, options: dict = {}):
|
def _versions(env: Environment, update: bool = False, options: dict = {}):
|
||||||
if 'ref' in options:
|
if 'ref' in options:
|
||||||
@ -78,7 +81,7 @@ def _git_recipe(env: Environment, globals: dict, repo_name, repo_url, cook_fn, v
|
|||||||
return [(0, 0, 0)]
|
return [(0, 0, 0)]
|
||||||
|
|
||||||
def _dependencies(env: Environment, version) -> 'dict':
|
def _dependencies(env: Environment, version) -> 'dict':
|
||||||
return dependencies
|
return dependencies_cb(env, version)
|
||||||
|
|
||||||
def _cook(env: Environment, version, options: dict = {}) -> dict:
|
def _cook(env: Environment, version, options: dict = {}) -> dict:
|
||||||
if 'ref' in options:
|
if 'ref' in options:
|
||||||
|
@ -26,19 +26,22 @@ def _git_cook(env: Environment, repo: dict) -> dict:
|
|||||||
'CPPDEFINES': ['CURL_STATICLIB=1']
|
'CPPDEFINES': ['CURL_STATICLIB=1']
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def _git_dependencies(env: Environment, version) -> 'dict':
|
||||||
_DEPENDENCIES = {
|
deps = {
|
||||||
'posix': {
|
'posix': {
|
||||||
'openssl': {},
|
'openssl': {},
|
||||||
'zlib': {},
|
'zlib': {},
|
||||||
'psl': {}
|
'psl': {}
|
||||||
},
|
},
|
||||||
'nt': {
|
'nt': {
|
||||||
'wincrypt': {},
|
'wincrypt': {},
|
||||||
'winldap': {},
|
'winldap': {},
|
||||||
'winsock2': {}
|
'winsock2': {}
|
||||||
}
|
}
|
||||||
}
|
}.get(os.name, {})
|
||||||
|
if os.name == 'posix' and version >= (8, 10, 0):
|
||||||
|
deps['nghttp2'] = {}
|
||||||
|
return deps
|
||||||
|
|
||||||
env.GitRecipe(
|
env.GitRecipe(
|
||||||
globals = globals(),
|
globals = globals(),
|
||||||
@ -47,5 +50,5 @@ env.GitRecipe(
|
|||||||
tag_pattern = re.compile(r'^curl-([0-9]+)_([0-9]+)_([0-9]+)$'),
|
tag_pattern = re.compile(r'^curl-([0-9]+)_([0-9]+)_([0-9]+)$'),
|
||||||
tag_fn = lambda version: f'curl-{version[0]}_{version[1]}_{version[2]}',
|
tag_fn = lambda version: f'curl-{version[0]}_{version[1]}_{version[2]}',
|
||||||
cook_fn = _git_cook,
|
cook_fn = _git_cook,
|
||||||
dependencies = _DEPENDENCIES.get(os.name, {})
|
dependencies = _git_dependencies
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user