@@ -88,6 +88,14 @@ ENABLE_WASM = False
88
88
ENABLE_LLVM_ASSERTIONS = 'auto'
89
89
90
90
91
+ def os_name ():
92
+ if WINDOWS : return 'win'
93
+ elif LINUX : return 'linux'
94
+ elif OSX : return 'osx'
95
+ else :
96
+ raise Exception ('unknown OS' )
97
+
98
+
91
99
def to_unix_path (p ):
92
100
return p .replace ('\\ ' , '/' )
93
101
@@ -1653,15 +1661,12 @@ def find_latest_waterfall_sdk(which):
1653
1661
if not waterfall_lkgr :
1654
1662
print ('Failed to find an upstream lkgr' )
1655
1663
sys .exit (1 )
1656
- return 'sdk-%s-%s-64bit' % (which , waterfall_lkgr [0 ])
1657
-
1664
+ return 'sdk-waterfall-%s-%s-64bit' % (which , waterfall_lkgr [0 ])
1658
1665
1659
- def find_latest_upstream_sdk ():
1660
- return find_latest_waterfall_sdk ('upstream' )
1661
1666
1662
-
1663
- def find_latest_fastcomp_sdk ():
1664
- return find_latest_waterfall_sdk ( 'fastcomp' )
1667
+ def find_latest_releases_sdk ( which ):
1668
+ releases_info = load_releases_info ()
1669
+ return 'sdk-releases-%s-%s-64bit' % ( which , releases_info [ 'latest' ] )
1665
1670
1666
1671
1667
1672
# Finds the best-matching python tool for use.
@@ -1732,26 +1737,17 @@ def fetch_emscripten_tags():
1732
1737
else :
1733
1738
print ('Done. No tagged Binaryen releases available.' )
1734
1739
1735
- def os_name_for_llvm_location ():
1736
- if WINDOWS : return 'win'
1737
- if LINUX : return 'linux'
1738
- if OSX : return 'osx'
1739
-
1740
- def os_name_for_emscripten_location ():
1741
- if WINDOWS : return 'win'
1742
- else : return 'linux'
1743
-
1744
1740
# Emscripten Nightlies support has been removed, clear the list of known Nightlies locally.
1745
1741
# print('Fetching all precompiled Nightly versions..')
1746
- # download_file('https://s3.amazonaws.com/mozilla-games/emscripten/packages/llvm/nightly/' + os_name_for_llvm_location () + '_32bit/index.txt', 'llvm-nightlies-32bit.txt', download_even_if_exists=True)
1747
- # download_file('https://s3.amazonaws.com/mozilla-games/emscripten/packages/llvm/nightly/' + os_name_for_llvm_location () + '_64bit/index.txt', 'llvm-nightlies-64bit.txt', download_even_if_exists=True)
1748
- # download_file('https://s3.amazonaws.com/mozilla-games/emscripten/packages/emscripten/nightly/' + os_name_for_emscripten_location () + '/index.txt', 'emscripten-nightlies.txt', download_even_if_exists=True)
1742
+ # download_file('https://s3.amazonaws.com/mozilla-games/emscripten/packages/llvm/nightly/' + os_name () + '_32bit/index.txt', 'llvm-nightlies-32bit.txt', download_even_if_exists=True)
1743
+ # download_file('https://s3.amazonaws.com/mozilla-games/emscripten/packages/llvm/nightly/' + os_name () + '_64bit/index.txt', 'llvm-nightlies-64bit.txt', download_even_if_exists=True)
1744
+ # download_file('https://s3.amazonaws.com/mozilla-games/emscripten/packages/emscripten/nightly/' + os_name () + '/index.txt', 'emscripten-nightlies.txt', download_even_if_exists=True)
1749
1745
for f in ['llvm-nightlies-32bit.txt' , 'llvm-nightlies-64bit.txt' , 'emscripten-nightlies.txt' ]:
1750
1746
if os .path .isfile (f ): os .remove (f )
1751
1747
1752
1748
print ('Fetching all precompiled tagged releases..' )
1753
- 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 )
1754
- 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 )
1749
+ download_file ('https://s3.amazonaws.com/mozilla-games/emscripten/packages/llvm/tag/' + os_name () + '_32bit/index.txt' , 'llvm-tags-32bit.txt' , download_even_if_exists = True )
1750
+ download_file ('https://s3.amazonaws.com/mozilla-games/emscripten/packages/llvm/tag/' + os_name () + '_64bit/index.txt' , 'llvm-tags-64bit.txt' , download_even_if_exists = True )
1755
1751
download_waterfall_lkgr ()
1756
1752
1757
1753
if not git :
@@ -1849,7 +1845,7 @@ def load_llvm_precompiled_tags_64bit():
1849
1845
1850
1846
1851
1847
def download_waterfall_lkgr ():
1852
- lkgr_url = 'https://storage.googleapis.com/wasm-llvm/builds/linux /lkgr.json'
1848
+ lkgr_url = 'https://storage.googleapis.com/wasm-llvm/builds/%s /lkgr.json' % os_name ()
1853
1849
download_file (lkgr_url , 'upstream' , download_even_if_exists = True )
1854
1850
1855
1851
@@ -1865,6 +1861,23 @@ def load_waterfall_lkgr():
1865
1861
return []
1866
1862
1867
1863
1864
+ # Load the json info for emscripten-releases.
1865
+ def load_releases_info ():
1866
+ try :
1867
+ text = open (sdk_path ('emscripten-releases-tags.txt' ), 'r' ).read ()
1868
+ return json .loads (text )
1869
+ except Exception as e :
1870
+ print ('Error parsing emscripten-releases-tags.txt!' )
1871
+ print (str (e ))
1872
+ sys .exit (1 )
1873
+
1874
+
1875
+ # Get a list of tags for emscripten-releases.
1876
+ def load_releases_tags ():
1877
+ info = load_releases_info ()
1878
+ return info .values ()
1879
+
1880
+
1868
1881
def is_string (s ):
1869
1882
if sys .version_info [0 ] >= 3 :
1870
1883
return isinstance (s , str )
@@ -1889,6 +1902,7 @@ def load_sdk_manifest():
1889
1902
llvm_64bit_nightlies = list (reversed (load_llvm_64bit_nightlies ()))
1890
1903
emscripten_nightlies = list (reversed (load_emscripten_nightlies ()))
1891
1904
waterfall_lkgr = load_waterfall_lkgr ()
1905
+ releases_tags = load_releases_tags ()
1892
1906
1893
1907
def dependencies_exist (sdk ):
1894
1908
for tool_name in sdk .uses :
@@ -1960,6 +1974,7 @@ def load_sdk_manifest():
1960
1974
elif '%nightly-llvm-32bit%' in t .version : expand_category_param ('%nightly-llvm-32bit%' , llvm_32bit_nightlies , t , is_sdk = False )
1961
1975
elif '%nightly-emscripten%' in t .version : expand_category_param ('%nightly-emscripten%' , emscripten_nightlies , t , is_sdk = False )
1962
1976
elif '%waterfall-lkgr%' in t .version : expand_category_param ('%waterfall-lkgr%' , waterfall_lkgr , t , is_sdk = False )
1977
+ elif '%releases-tag%' in t .version : expand_category_param ('%releases-tag%' , releases_tags , t , is_sdk = False )
1963
1978
else :
1964
1979
add_tool (t )
1965
1980
@@ -1978,6 +1993,7 @@ def load_sdk_manifest():
1978
1993
elif '%nightly-llvm-32bit%' in sdk .version : expand_category_param ('%nightly-llvm-32bit%' , llvm_32bit_nightlies , sdk , is_sdk = True )
1979
1994
elif '%nightly-emscripten%' in sdk .version : expand_category_param ('%nightly-emscripten%' , emscripten_nightlies , sdk , is_sdk = True )
1980
1995
elif '%waterfall-lkgr%' in sdk .version : expand_category_param ('%waterfall-lkgr%' , waterfall_lkgr , sdk , is_sdk = True )
1996
+ elif '%releases-tag%' in sdk .version : expand_category_param ('%releases-tag%' , releases_tags , sdk , is_sdk = True )
1981
1997
else :
1982
1998
add_sdk (sdk )
1983
1999
@@ -2388,9 +2404,13 @@ def main():
2388
2404
elif sys .argv [i ] == 'sdk-nightly-latest-64bit' :
2389
2405
sys .argv [i ] = str (find_latest_nightly_64bit_sdk ())
2390
2406
elif sys .argv [i ] == 'latest-upstream' or sys .argv [i ] == 'latest-clang-upstream' :
2391
- sys .argv [i ] = str (find_latest_upstream_sdk ( ))
2407
+ sys .argv [i ] = str (find_latest_waterfall_sdk ( 'upstream' ))
2392
2408
elif sys .argv [i ] == 'latest-fastcomp' :
2393
- sys .argv [i ] = str (find_latest_fastcomp_sdk ())
2409
+ sys .argv [i ] = str (find_latest_waterfall_sdk ('fastcomp' ))
2410
+ elif sys .argv [i ] == 'latest-releases-upstream' :
2411
+ sys .argv [i ] = str (find_latest_releases_sdk ('upstream' ))
2412
+ elif sys .argv [i ] == 'latest-releases-fastcomp' :
2413
+ sys .argv [i ] = str (find_latest_releases_sdk ('fastcomp' ))
2394
2414
2395
2415
if cmd == 'list' :
2396
2416
print ('' )
0 commit comments