Fix a bug where precompiled list of SDKs would not attempted to be downloaded if git was not present on the system. Fixes https://github.com/kripken/emscripten/issues/6165.
This commit is contained in:
98
emsdk
98
emsdk
@@ -1508,56 +1508,45 @@ def python_2_3_sorted(arr, cmp):
|
|||||||
|
|
||||||
def fetch_emscripten_tags():
|
def fetch_emscripten_tags():
|
||||||
git = GIT(must_succeed=False)
|
git = GIT(must_succeed=False)
|
||||||
if not git:
|
|
||||||
print('Update complete, however skipped fetching the Emscripten tags, since git was not found.')
|
if git:
|
||||||
if WINDOWS:
|
print('Fetching all tags from Emscripten Github repository...')
|
||||||
print("If you want to compile one of the tagged releases from source, please install git by typing 'emsdk install git-1.9.4', or alternatively by installing it manually from http://git-scm.com/downloads . If you install git manually, remember to add it to PATH.")
|
tags = run_get_output([git, 'ls-remote', '--tags', emscripten_git_repo])
|
||||||
elif OSX:
|
if tags[0] != 0: return False # failed to get tags?
|
||||||
print("If you want to compile one of the tagged releases from source, please install git from http://git-scm.com/ , or by installing XCode and then the XCode Command Line Tools (see http://stackoverflow.com/questions/9329243/xcode-4-4-command-line-tools ).")
|
tags = tags[1]
|
||||||
elif LINUX:
|
all_tags = []
|
||||||
print("If you want to compile one of the tagged releases from source, please install git using your package manager, see http://git-scm.com/book/en/Getting-Started-Installing-Git .")
|
for t in tags.split('\n'):
|
||||||
|
try:
|
||||||
|
t = t[t.index('refs/tags/') + len('refs/tags/'):].strip()
|
||||||
|
if version_key(t) >= version_key('1.28.2'):
|
||||||
|
all_tags += [t]
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
all_tags = sorted(all_tags, key=version_key)
|
||||||
|
open(sdk_path('emscripten-tags.txt'), 'w').write('\n'.join(all_tags))
|
||||||
|
if len(all_tags) > 0:
|
||||||
|
print('Done. ' + str(len(all_tags)) + ' tagged releases available, latest is ' + all_tags[-1] + '.')
|
||||||
else:
|
else:
|
||||||
print("If you want to compile one of the tagged releases from source, please install git.")
|
print('Done. No tagged releases available.')
|
||||||
print("If you are not looking to build Emscripten from source, you can safely ignore this message.")
|
|
||||||
return
|
|
||||||
|
|
||||||
print('Fetching all tags from Emscripten Github repository...')
|
print('Fetching all tags from Binaryen Github repository...')
|
||||||
tags = run_get_output([GIT(), 'ls-remote', '--tags', emscripten_git_repo])
|
tags = run_get_output([git, 'ls-remote', '--tags', binaryen_git_repo])
|
||||||
if tags[0] != 0: return False # failed to get tags?
|
if tags[0] != 0: return False # failed to get tags?
|
||||||
tags = tags[1]
|
tags = tags[1]
|
||||||
all_tags = []
|
binaryen_tags = []
|
||||||
for t in tags.split('\n'):
|
for t in tags.split('\n'):
|
||||||
try:
|
try:
|
||||||
t = t[t.index('refs/tags/') + len('refs/tags/'):].strip()
|
t = t[t.index('refs/tags/') + len('refs/tags/'):].strip()
|
||||||
if version_key(t) >= version_key('1.28.2'):
|
if '.' in t:
|
||||||
all_tags += [t]
|
binaryen_tags += [t]
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
all_tags = sorted(all_tags, key=version_key)
|
binaryen_tags = sorted(binaryen_tags, key=version_key)
|
||||||
open(sdk_path('emscripten-tags.txt'), 'w').write('\n'.join(all_tags))
|
open(sdk_path('binaryen-tags.txt'), 'w').write('\n'.join(binaryen_tags))
|
||||||
if len(all_tags) > 0:
|
if len(binaryen_tags) > 0:
|
||||||
print('Done. ' + str(len(all_tags)) + ' tagged releases available, latest is ' + all_tags[-1] + '.')
|
print('Done. ' + str(len(binaryen_tags)) + ' tagged Binaryen releases available, latest is ' + binaryen_tags[-1] + '.')
|
||||||
else:
|
else:
|
||||||
print('Done. No tagged releases available.')
|
print('Done. No tagged Binaryen 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, key=version_key)
|
|
||||||
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():
|
def os_name_for_llvm_location():
|
||||||
if WINDOWS: return 'win'
|
if WINDOWS: return 'win'
|
||||||
@@ -1576,6 +1565,19 @@ def fetch_emscripten_tags():
|
|||||||
download_file('https://s3.amazonaws.com/mozilla-games/emscripten/packages/llvm/tag/' + os_name_for_llvm_location() + '_32bit/index.txt', 'llvm-tags-32bit.txt', download_even_if_exists=True)
|
download_file('https://s3.amazonaws.com/mozilla-games/emscripten/packages/llvm/tag/' + os_name_for_llvm_location() + '_32bit/index.txt', 'llvm-tags-32bit.txt', download_even_if_exists=True)
|
||||||
download_file('https://s3.amazonaws.com/mozilla-games/emscripten/packages/llvm/tag/' + os_name_for_llvm_location() + '_64bit/index.txt', 'llvm-tags-64bit.txt', download_even_if_exists=True)
|
download_file('https://s3.amazonaws.com/mozilla-games/emscripten/packages/llvm/tag/' + os_name_for_llvm_location() + '_64bit/index.txt', 'llvm-tags-64bit.txt', download_even_if_exists=True)
|
||||||
|
|
||||||
|
if not git:
|
||||||
|
print('Update complete, however skipped fetching the Emscripten tags, since git was not found.')
|
||||||
|
if WINDOWS:
|
||||||
|
print("If you want to compile one of the tagged releases from source, please install git by typing 'emsdk install git-1.9.4', or alternatively by installing it manually from http://git-scm.com/downloads . If you install git manually, remember to add it to PATH.")
|
||||||
|
elif OSX:
|
||||||
|
print("If you want to compile one of the tagged releases from source, please install git from http://git-scm.com/ , or by installing XCode and then the XCode Command Line Tools (see http://stackoverflow.com/questions/9329243/xcode-4-4-command-line-tools ).")
|
||||||
|
elif LINUX:
|
||||||
|
print("If you want to compile one of the tagged releases from source, please install git using your package manager, see http://git-scm.com/book/en/Getting-Started-Installing-Git .")
|
||||||
|
else:
|
||||||
|
print("If you want to compile one of the tagged releases from source, please install git.")
|
||||||
|
print("If you are not looking to build Emscripten from source, you can safely ignore this message.")
|
||||||
|
return
|
||||||
|
|
||||||
def is_emsdk_sourced_from_github():
|
def is_emsdk_sourced_from_github():
|
||||||
return os.path.exists(os.path.join(emsdk_path(), '.git'))
|
return os.path.exists(os.path.join(emsdk_path(), '.git'))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user