Update version script

pull/640/head
Sy Brand 6 months ago
parent 0452f00514
commit 041e6ec236

@ -347,7 +347,7 @@ endif()
add_custom_target(build ALL)
foreach(target IN LISTS WASI_SDK_TARGETS)
add_custom_target(build-${target})
add_dependencies(build-${target} wasi-libc-${target} compiler-rt)
add_dependencies(build-${target} libcxx-${target} wasi-libc-${target} compiler-rt)
add_dependencies(build build-${target})
endforeach()

@ -157,6 +157,7 @@ copy_misc_file(wasi-sdk.cmake cmake)
copy_misc_file(wasi-sdk-pthread.cmake cmake)
copy_misc_file(wasi-sdk-p1.cmake cmake)
copy_misc_file(wasi-sdk-p2.cmake cmake)
copy_misc_file(wasi-sdk-p3.cmake cmake)
copy_misc_file(cmake/Platform/WASI.cmake cmake/Platform)
function(copy_cfg_file compiler)

@ -13,6 +13,10 @@ import sys
# The number of characters to use for the abbreviated Git revision.
GIT_REF_LEN = 12
# Some special major versions that are not just numbers, e.g. "experimental-threading".
KNOWN_SPECIAL_RELEASES = [
'experimental-threading'
]
def exec(command, cwd):
result = subprocess.run(command, stdout=subprocess.PIPE,
@ -23,14 +27,22 @@ def exec(command, cwd):
def git_commit(dir):
return exec(['git', 'rev-parse', f'--short={GIT_REF_LEN}', 'HEAD'], dir)
def parse_git_version(version):
# Parse, e.g.: wasi-sdk-21-0-g317548590b40+m
assert version.startswith('wasi-sdk-'), f'unexpected version format: {version}'
version = version.removeprefix('wasi-sdk-')
prefix = ''
for special in KNOWN_SPECIAL_RELEASES:
if version.startswith(f'{special}-'):
prefix = f'{special}-'
version = version.removeprefix(f'{special}-')
break
parts = version.replace('+', '-').split('-')
assert parts.pop(0) == 'wasi'
assert parts.pop(0) == 'sdk'
major, minor = parts.pop(0), parts.pop(0)
major = prefix + parts.pop(0) if prefix else parts.pop(0)
minor = parts.pop(0)
git = None
dirty = False
@ -58,6 +70,12 @@ assert parse_git_version('wasi-sdk-21-2+m') == ('21', '2', None, True)
assert parse_git_version(
'wasi-sdk-23-0-g317548590b40') == ('23', '0', None, False)
assert parse_git_version(
'wasi-sdk-experimental-threading-21-1-g317548590b40+m') == ('experimental-threading-21', '1', '317548590b40', True)
assert parse_git_version('wasi-sdk-experimental-threading-21-2+m') == ('experimental-threading-21', '2', None, True)
assert parse_git_version(
'wasi-sdk-experimental-threading-23-0-g317548590b40') == ('experimental-threading-23', '0', None, False)
def git_version():
version = exec(['git', 'describe', '--long', '--candidates=999',

Loading…
Cancel
Save