From 01be20bc15266389d1e6e21ea8af8a39768ae6c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jukka=20Jyl=C3=A4nki?= Date: Thu, 12 Jan 2017 22:01:09 +0200 Subject: [PATCH] Add Binaryen tags to manifest list. --- emsdk | 29 ++++++++++++++++++++++++++ emsdk_manifest.json | 51 +++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 78 insertions(+), 2 deletions(-) diff --git a/emsdk b/emsdk index bf7671f..df051a0 100755 --- a/emsdk +++ b/emsdk @@ -25,6 +25,7 @@ else: emsdk_packages_url = urljoin(emsdk_master_server, 'packages/') emscripten_git_repo = 'https://github.com/kripken/emscripten/' +binaryen_git_repo = 'https://github.com/WebAssembly/binaryen/' # Enable this to do very verbose printing about the different steps that are being run. Useful for debugging. VERBOSE = bool(os.getenv('EMSDK_VERBOSE')) if os.getenv('EMSDK_VERBOSE') != None else False @@ -1426,6 +1427,25 @@ def fetch_emscripten_tags(): else: print('Done. No tagged releases available.') + print('Fetching all tags from Binaryen Github repository...') + tags = run_get_output([GIT(), 'ls-remote', '--tags', binaryen_git_repo]) + if tags[0] != 0: return False # failed to get tags? + tags = tags[1] + binaryen_tags = [] + for t in tags.split('\n'): + try: + t = t[t.index('refs/tags/') + len('refs/tags/'):].strip() + if '.' in t: + binaryen_tags += [t] + except: + pass + binaryen_tags = sorted(binaryen_tags, cmp=version_compare) + open(sdk_path('binaryen-tags.txt'), 'w').write('\n'.join(binaryen_tags)) + if len(binaryen_tags) > 0: + print('Done. ' + str(len(binaryen_tags)) + ' tagged Binaryen releases available, latest is ' + binaryen_tags[-1] + '.') + else: + print('Done. No tagged Binaryen releases available.') + def os_name_for_llvm_location(): if WINDOWS: return 'win' if LINUX: return 'linux' @@ -1456,6 +1476,12 @@ def load_emscripten_tags(): except: return [] +def load_binaryen_tags(): + try: + return open(sdk_path('binaryen-tags.txt'), 'r').read().split('\n') + except: + return [] + def remove_prefix(s, prefix): if s.startswith(prefix): return s[len(prefix):] else: return s @@ -1493,6 +1519,7 @@ def load_sdk_manifest(): return emscripten_tags = load_emscripten_tags() + binaryen_tags = load_binaryen_tags() llvm_32bit_nightlies = list(reversed(load_llvm_32bit_nightlies())) llvm_64bit_nightlies = list(reversed(load_llvm_64bit_nightlies())) emscripten_nightlies = list(reversed(load_emscripten_nightlies())) @@ -1531,6 +1558,8 @@ def load_sdk_manifest(): # Expand the metapackages that refer to tags or nightlies. if '%tag%' in t.version: expand_category_param('%tag%', emscripten_tags, t, is_sdk=False) + elif '%binaryen_tag%' in t.version: + expand_category_param('%binaryen_tag%', binaryen_tags, t, is_sdk=False) elif '%nightly-llvm-64bit%' in t.version: expand_category_param('%nightly-llvm-64bit%', llvm_64bit_nightlies, t, is_sdk=False) elif '%nightly-llvm-32bit%' in t.version: diff --git a/emsdk_manifest.json b/emsdk_manifest.json index 72af530..81e48da 100644 --- a/emsdk_manifest.json +++ b/emsdk_manifest.json @@ -647,11 +647,43 @@ "activated_cfg": "EMSCRIPTEN_ROOT='%installation_dir%';EMSCRIPTEN_NATIVE_OPTIMIZER='%installation_dir%%generator_prefix%_64bit_optimizer/%cmake_build_type_on_win%optimizer%.exe%'", "activated_path": "%installation_dir%", "activated_env": "EMSCRIPTEN=%installation_dir%", - "cmake_build_type": "RelWithDebInfo", + "cmake_build_type": "Release", "custom_install_script": "build_optimizer", "custom_is_installed_script": "is_optimizer_installed", "custom_uninstall_script": "uninstall_optimizer" }, + { + "id": "binaryen", + "version": "tag-%binaryen_tag%", + "bitness": 32, + "append_bitness": false, + "windows_url": "https://github.com/WebAssembly/binaryen/archive/%binaryen_tag%.zip", + "unix_url": "https://github.com/WebAssembly/binaryen/archive/%binaryen_tag%.tar.gz", + "zipfile_prefix": "binaryen-e", + "activated_cfg": "BINARYEN_ROOT='%installation_dir%%generator_prefix%_64bit_binaryen'", + "activated_path": "%installation_dir%", + "activated_env": "BINARYEN_ROOT=%installation_dir%%generator_prefix%_64bit_binaryen", + "cmake_build_type": "Release", + "custom_install_script": "build_binaryen", + "custom_is_installed_script": "is_binaryen_installed", + "custom_uninstall_script": "uninstall_binaryen" + }, + { + "id": "binaryen", + "version": "tag-%binaryen_tag%", + "bitness": 64, + "append_bitness": false, + "windows_url": "https://github.com/WebAssembly/binaryen/archive/%binaryen_tag%.zip", + "unix_url": "https://github.com/WebAssembly/binaryen/archive/%binaryen_tag%.tar.gz", + "zipfile_prefix": "binaryen-e", + "activated_cfg": "BINARYEN_ROOT='%installation_dir%%generator_prefix%_64bit_binaryen'", + "activated_path": "%installation_dir%", + "activated_env": "BINARYEN_ROOT=%installation_dir%%generator_prefix%_64bit_binaryen", + "cmake_build_type": "Release", + "custom_install_script": "build_binaryen", + "custom_is_installed_script": "is_binaryen_installed", + "custom_uninstall_script": "uninstall_binaryen" + }, { "id": "emscripten", "version": "nightly-%nightly-emscripten%", @@ -721,6 +753,21 @@ "custom_is_installed_script": "is_optimizer_installed", "custom_uninstall_script": "uninstall_optimizer" }, + { + "id": "binaryen", + "version": "master", + "bitness": 32, + "append_bitness": false, + "url": "https://github.com/WebAssembly/binaryen/", + "git_branch": "master", + "activated_cfg": "BINARYEN_ROOT='%installation_dir%%generator_prefix%_32bit_binaryen'", + "activated_path": "%installation_dir%", + "activated_env": "BINARYEN_ROOT=%installation_dir%%generator_prefix%_32bit_binaryen", + "cmake_build_type": "Release", + "custom_install_script": "build_binaryen", + "custom_is_installed_script": "is_binaryen_installed", + "custom_uninstall_script": "uninstall_binaryen" + }, { "id": "binaryen", "version": "master", @@ -731,7 +778,7 @@ "activated_cfg": "BINARYEN_ROOT='%installation_dir%%generator_prefix%_64bit_binaryen'", "activated_path": "%installation_dir%", "activated_env": "BINARYEN_ROOT=%installation_dir%%generator_prefix%_64bit_binaryen", - "cmake_build_type": "RelWithDebInfo", + "cmake_build_type": "Release", "custom_install_script": "build_binaryen", "custom_is_installed_script": "is_binaryen_installed", "custom_uninstall_script": "uninstall_binaryen"