Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/angle
Path: blob/main_old/tools/flex-bison/update_flex_bison_binaries.py
2585 views
1
#!/usr/bin/python2
2
#
3
# Copyright 2019 The ANGLE Project Authors. All rights reserved.
4
# Use of this source code is governed by a BSD-style license that can be
5
# found in the LICENSE file.
6
#
7
# update_flex_bison_binaries.py:
8
# Helper script to update the version of flex and bison in cloud storage.
9
# These binaries are used to generate the ANGLE translator's lexer and parser.
10
# This script relies on flex and bison binaries to be externally built which
11
# is expected to be a rare operation. It currently only works on Windows and
12
# Linux. It also will update the hashes stored in the tree. For more info see
13
# README.md in this folder.
14
15
import os
16
import platform
17
import shutil
18
import sys
19
20
sys.path.append('tools/')
21
import angle_tools
22
23
24
def main():
25
if angle_tools.is_linux:
26
subdir = 'linux'
27
files = ['flex', 'bison']
28
elif angle_tools.is_windows:
29
subdir = 'windows'
30
files = [
31
'flex.exe', 'bison.exe', 'm4.exe', 'msys-2.0.dll', 'msys-iconv-2.dll',
32
'msys-intl-8.dll'
33
]
34
else:
35
print('Script must be run on Linux or Windows.')
36
return 1
37
38
files = [os.path.join(sys.path[0], subdir, f) for f in files]
39
40
# Step 1: Upload to cloud storage
41
if not angle_tools.upload_to_google_storage('angle-flex-bison', files):
42
print('Error upload to cloud storage')
43
return 1
44
45
# Step 2: Stage new SHA to git
46
if not angle_tools.stage_google_storage_sha1(files):
47
print('Error running git add')
48
return 2
49
50
print('')
51
print('The updated SHA has been staged for commit. Please commit and upload.')
52
print('Suggested commit message (please indicate flex/bison versions):')
53
print('----------------------------')
54
print('')
55
print('Update flex and bison binaries for %s.' % platform.system())
56
print('')
57
print('These binaries were updated using %s.' % os.path.basename(__file__))
58
print('Please see instructions in tools/flex-bison/README.md.')
59
print('')
60
print('flex is at version TODO.')
61
print('bison is at version TODO.')
62
print('')
63
print('Bug: None')
64
65
return 0
66
67
68
if __name__ == '__main__':
69
sys.exit(main())
70
71