summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2017-10-12 13:42:40 +1100
committerChris Johns <chrisj@rtems.org>2017-10-12 13:48:52 +1100
commit7b68249b57bfdefe8ef95b333cdc595f7622929c (patch)
treeda0f1045ffe6434cc16ab4907229fcc740b9c5f6
parentsb: Move the option check for reporting errors to the error reporter. (diff)
downloadrtems-source-builder-7b68249b57bfdefe8ef95b333cdc595f7622929c.tar.bz2
sb: Add --source-only-download to make download source simple.
This is needed to test #2536. Add an option to disable any log. Updates #2536.
-rw-r--r--source-builder/sb/options.py83
1 files changed, 50 insertions, 33 deletions
diff --git a/source-builder/sb/options.py b/source-builder/sb/options.py
index 51407a4..3c3b2ff 100644
--- a/source-builder/sb/options.py
+++ b/source-builder/sb/options.py
@@ -54,34 +54,35 @@ class command_line:
def __init__(self, argv, optargs, _defaults, command_path):
self._long_opts = {
# key macro handler param defs init
- '--prefix' : ('_prefix', self._lo_path, True, None, False),
- '--topdir' : ('_topdir', self._lo_path, True, None, False),
- '--configdir' : ('_configdir', self._lo_path, True, None, False),
- '--builddir' : ('_builddir', self._lo_path, True, None, False),
- '--sourcedir' : ('_sourcedir', self._lo_path, True, None, False),
- '--tmppath' : ('_tmppath', self._lo_path, True, None, False),
- '--jobs' : ('_jobs', self._lo_jobs, True, 'max', True),
- '--log' : ('_logfile', self._lo_string, True, None, False),
- '--url' : ('_url_base', self._lo_string, True, None, False),
- '--no-download' : ('_disable_download', self._lo_bool, False, '0', True),
- '--macros' : ('_macros', self._lo_string, True, None, False),
- '--targetcflags' : ('_targetcflags', self._lo_string, True, None, False),
- '--targetcxxflags' : ('_targetcxxflags', self._lo_string, True, None, False),
- '--libstdcxxflags' : ('_libstdcxxflags', self._lo_string, True, None, False),
- '--force' : ('_force', self._lo_bool, False, '0', True),
- '--quiet' : ('_quiet', self._lo_bool, False, '0', True),
- '--trace' : ('_trace', self._lo_bool, False, '0', True),
- '--dry-run' : ('_dry_run', self._lo_bool, False, '0', True),
- '--warn-all' : ('_warn_all', self._lo_bool, False, '0', True),
- '--no-clean' : ('_no_clean', self._lo_bool, False, '0', True),
- '--keep-going' : ('_keep_going', self._lo_bool, False, '0', True),
- '--always-clean' : ('_always_clean', self._lo_bool, False, '0', True),
- '--no-install' : ('_no_install', self._lo_bool, False, '0', True),
- '--regression' : ('_regression', self._lo_bool, False, '0', True),
- '--host' : ('_host', self._lo_triplets, True, None, False),
- '--build' : ('_build', self._lo_triplets, True, None, False),
- '--target' : ('_target', self._lo_triplets, True, None, False),
- '--help' : (None, self._lo_help, False, None, False)
+ '--prefix' : ('_prefix', self._lo_path, True, None, False),
+ '--topdir' : ('_topdir', self._lo_path, True, None, False),
+ '--configdir' : ('_configdir', self._lo_path, True, None, False),
+ '--builddir' : ('_builddir', self._lo_path, True, None, False),
+ '--sourcedir' : ('_sourcedir', self._lo_path, True, None, False),
+ '--tmppath' : ('_tmppath', self._lo_path, True, None, False),
+ '--jobs' : ('_jobs', self._lo_jobs, True, 'max', True),
+ '--log' : ('_logfile', self._lo_string, True, None, False),
+ '--url' : ('_url_base', self._lo_string, True, None, False),
+ '--no-download' : ('_disable_download', self._lo_bool, False, '0', True),
+ '--macros' : ('_macros', self._lo_string, True, None, False),
+ '--source-only-download' : ('_source_download', self._lo_bool, False, '0', True),
+ '--targetcflags' : ('_targetcflags', self._lo_string, True, None, False),
+ '--targetcxxflags' : ('_targetcxxflags', self._lo_string, True, None, False),
+ '--libstdcxxflags' : ('_libstdcxxflags', self._lo_string, True, None, False),
+ '--force' : ('_force', self._lo_bool, False, '0', True),
+ '--quiet' : ('_quiet', self._lo_bool, False, '0', True),
+ '--trace' : ('_trace', self._lo_bool, False, '0', True),
+ '--dry-run' : ('_dry_run', self._lo_bool, False, '0', True),
+ '--warn-all' : ('_warn_all', self._lo_bool, False, '0', True),
+ '--no-clean' : ('_no_clean', self._lo_bool, False, '0', True),
+ '--keep-going' : ('_keep_going', self._lo_bool, False, '0', True),
+ '--always-clean' : ('_always_clean', self._lo_bool, False, '0', True),
+ '--no-install' : ('_no_install', self._lo_bool, False, '0', True),
+ '--regression' : ('_regression', self._lo_bool, False, '0', True),
+ '--host' : ('_host', self._lo_triplets, True, None, False),
+ '--build' : ('_build', self._lo_triplets, True, None, False),
+ '--target' : ('_target', self._lo_triplets, True, None, False),
+ '--help' : (None, self._lo_help, False, None, False)
}
self.command_path = command_path
@@ -222,6 +223,7 @@ class command_line:
print('--targetcflags flags : List of C flags for the target code')
print('--targetcxxflags flags : List of C++ flags for the target code')
print('--libstdcxxflags flags : List of C++ flags to build the target libstdc++ code')
+ print('--source-only-download : Only download the source')
print('--with-<label> : Add the --with-<label> to the build')
print('--without-<label> : Add the --without-<label> to the build')
print('--rtems-tools path : Path to an install RTEMS tool set')
@@ -265,13 +267,27 @@ class command_line:
self.opts['params'].append(a)
arg += 1
+ def pre_process(self):
+ arg = 0
+ while arg < len(self.args):
+ a = self.args[arg]
+ if a == '--source-only-download':
+ self.args += ['--dry-run',
+ '--quiet',
+ '--without-log',
+ '--without-error-report',
+ '--without-release-url']
+ arg += 1
+
def post_process(self, logfile = True):
# Handle the log first.
- if logfile:
- logfiles = self.logfiles()
- else:
- logfiles = None
- log.default = log.log(streams = logfiles)
+ logctrl = self.get_arg('--without-log')
+ if logctrl is not None and logfile:
+ if logfile:
+ logfiles = self.logfiles()
+ else:
+ logfiles = None
+ log.default = log.log(streams = logfiles)
if self.trace():
log.tracing = True
if self.quiet():
@@ -641,6 +657,7 @@ def load(args, optargs = None, defaults = '%{_sbdir}/defaults.mc', logfile = Tru
o.sb_released()
o.sb_git()
o.rtems_options()
+ o.pre_process()
o.process()
o.post_process(logfile)