mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-25 21:24:21 +08:00
buildman: Improve the toolchain progress/error output
Use colour to make it easier to see what is going on. Also print a message before downloading a new toolchain. Mention --fetch-arch in the message that is shown when there are no available toolchains, since this is the quickest way to resolve the problem. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
80e6a48750
commit
713bea38dd
@ -107,6 +107,7 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None,
|
|||||||
return 0
|
return 0
|
||||||
|
|
||||||
gitutil.Setup()
|
gitutil.Setup()
|
||||||
|
col = terminal.Color()
|
||||||
|
|
||||||
options.git_dir = os.path.join(options.git, '.git')
|
options.git_dir = os.path.join(options.git, '.git')
|
||||||
|
|
||||||
@ -122,14 +123,17 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None,
|
|||||||
if options.fetch_arch:
|
if options.fetch_arch:
|
||||||
if options.fetch_arch == 'list':
|
if options.fetch_arch == 'list':
|
||||||
sorted_list = toolchains.ListArchs()
|
sorted_list = toolchains.ListArchs()
|
||||||
print 'Available architectures: %s\n' % ' '.join(sorted_list)
|
print col.Color(col.BLUE, 'Available architectures: %s\n' %
|
||||||
|
' '.join(sorted_list))
|
||||||
return 0
|
return 0
|
||||||
else:
|
else:
|
||||||
fetch_arch = options.fetch_arch
|
fetch_arch = options.fetch_arch
|
||||||
if fetch_arch == 'all':
|
if fetch_arch == 'all':
|
||||||
fetch_arch = ','.join(toolchains.ListArchs())
|
fetch_arch = ','.join(toolchains.ListArchs())
|
||||||
print 'Downloading toolchains: %s\n' % fetch_arch
|
print col.Color(col.CYAN, '\nDownloading toolchains: %s' %
|
||||||
|
fetch_arch)
|
||||||
for arch in fetch_arch.split(','):
|
for arch in fetch_arch.split(','):
|
||||||
|
print
|
||||||
ret = toolchains.FetchAndInstall(arch)
|
ret = toolchains.FetchAndInstall(arch)
|
||||||
if ret:
|
if ret:
|
||||||
return ret
|
return ret
|
||||||
@ -138,7 +142,6 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None,
|
|||||||
# Work out how many commits to build. We want to build everything on the
|
# Work out how many commits to build. We want to build everything on the
|
||||||
# branch. We also build the upstream commit as a control so we can see
|
# branch. We also build the upstream commit as a control so we can see
|
||||||
# problems introduced by the first commit on the branch.
|
# problems introduced by the first commit on the branch.
|
||||||
col = terminal.Color()
|
|
||||||
count = options.count
|
count = options.count
|
||||||
has_range = options.branch and '..' in options.branch
|
has_range = options.branch and '..' in options.branch
|
||||||
if count == -1:
|
if count == -1:
|
||||||
|
@ -13,6 +13,7 @@ import urllib2
|
|||||||
|
|
||||||
import bsettings
|
import bsettings
|
||||||
import command
|
import command
|
||||||
|
import terminal
|
||||||
|
|
||||||
(PRIORITY_FULL_PREFIX, PRIORITY_PREFIX_GCC, PRIORITY_PREFIX_GCC_PATH,
|
(PRIORITY_FULL_PREFIX, PRIORITY_PREFIX_GCC, PRIORITY_PREFIX_GCC_PATH,
|
||||||
PRIORITY_CALC) = range(4)
|
PRIORITY_CALC) = range(4)
|
||||||
@ -179,9 +180,11 @@ class Toolchains:
|
|||||||
"""
|
"""
|
||||||
toolchains = bsettings.GetItems('toolchain')
|
toolchains = bsettings.GetItems('toolchain')
|
||||||
if show_warning and not toolchains:
|
if show_warning and not toolchains:
|
||||||
print ('Warning: No tool chains - please add a [toolchain] section'
|
print ("Warning: No tool chains. Please run 'buildman "
|
||||||
' to your buildman config file %s. See README for details' %
|
"--fetch-arch all' to download all available toolchains, or "
|
||||||
bsettings.config_fname)
|
"add a [toolchain] section to your buildman config file "
|
||||||
|
"%s. See README for details" %
|
||||||
|
bsettings.config_fname)
|
||||||
|
|
||||||
paths = []
|
paths = []
|
||||||
for name, value in toolchains:
|
for name, value in toolchains:
|
||||||
@ -294,7 +297,9 @@ class Toolchains:
|
|||||||
|
|
||||||
def List(self):
|
def List(self):
|
||||||
"""List out the selected toolchains for each architecture"""
|
"""List out the selected toolchains for each architecture"""
|
||||||
print 'List of available toolchains (%d):' % len(self.toolchains)
|
col = terminal.Color()
|
||||||
|
print col.Color(col.BLUE, 'List of available toolchains (%d):' %
|
||||||
|
len(self.toolchains))
|
||||||
if len(self.toolchains):
|
if len(self.toolchains):
|
||||||
for key, value in sorted(self.toolchains.iteritems()):
|
for key, value in sorted(self.toolchains.iteritems()):
|
||||||
print '%-10s: %s' % (key, value.gcc)
|
print '%-10s: %s' % (key, value.gcc)
|
||||||
@ -509,6 +514,8 @@ class Toolchains:
|
|||||||
Architecture to fetch, or 'list' to list
|
Architecture to fetch, or 'list' to list
|
||||||
"""
|
"""
|
||||||
# Fist get the URL for this architecture
|
# Fist get the URL for this architecture
|
||||||
|
col = terminal.Color()
|
||||||
|
print col.Color(col.BLUE, "Downloading toolchain for arch '%s'" % arch)
|
||||||
url = self.LocateArchUrl(arch)
|
url = self.LocateArchUrl(arch)
|
||||||
if not url:
|
if not url:
|
||||||
print ("Cannot find toolchain for arch '%s' - use 'list' to list" %
|
print ("Cannot find toolchain for arch '%s' - use 'list' to list" %
|
||||||
@ -523,7 +530,7 @@ class Toolchains:
|
|||||||
tmpdir, tarfile = self.Download(url)
|
tmpdir, tarfile = self.Download(url)
|
||||||
if not tarfile:
|
if not tarfile:
|
||||||
return 1
|
return 1
|
||||||
print 'Unpacking to: %s' % dest,
|
print col.Color(col.GREEN, 'Unpacking to: %s' % dest),
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
path = self.Unpack(tarfile, dest)
|
path = self.Unpack(tarfile, dest)
|
||||||
os.remove(tarfile)
|
os.remove(tarfile)
|
||||||
@ -531,16 +538,15 @@ class Toolchains:
|
|||||||
print
|
print
|
||||||
|
|
||||||
# Check that the toolchain works
|
# Check that the toolchain works
|
||||||
print 'Testing'
|
print col.Color(col.GREEN, 'Testing')
|
||||||
dirpath = os.path.join(dest, path)
|
dirpath = os.path.join(dest, path)
|
||||||
compiler_fname_list = self.ScanPath(dirpath, True)
|
compiler_fname_list = self.ScanPath(dirpath, True)
|
||||||
if not compiler_fname_list:
|
if not compiler_fname_list:
|
||||||
print 'Could not locate C compiler - fetch failed.'
|
print 'Could not locate C compiler - fetch failed.'
|
||||||
return 1
|
return 1
|
||||||
if len(compiler_fname_list) != 1:
|
if len(compiler_fname_list) != 1:
|
||||||
print ('Internal error, ambiguous toolchains: %s' %
|
print col.Color(col.RED, 'Warning, ambiguous toolchains: %s' %
|
||||||
(', '.join(compiler_fname)))
|
', '.join(compiler_fname_list))
|
||||||
return 1
|
|
||||||
toolchain = Toolchain(compiler_fname_list[0], True, True)
|
toolchain = Toolchain(compiler_fname_list[0], True, True)
|
||||||
|
|
||||||
# Make sure that it will be found by buildman
|
# Make sure that it will be found by buildman
|
||||||
|
Loading…
Reference in New Issue
Block a user