summaryrefslogtreecommitdiffstats
path: root/source-builder/sb/config.py
diff options
context:
space:
mode:
Diffstat (limited to 'source-builder/sb/config.py')
-rw-r--r--source-builder/sb/config.py68
1 files changed, 38 insertions, 30 deletions
diff --git a/source-builder/sb/config.py b/source-builder/sb/config.py
index 1687d06..127112b 100644
--- a/source-builder/sb/config.py
+++ b/source-builder/sb/config.py
@@ -236,35 +236,14 @@ class file:
re.compile('%disable') ]
def __init__(self, name, opts, macros = None):
+ log.trace('config: %s: initialising' % (name))
self.opts = opts
- if macros is None:
- self.macros = opts.defaults
- else:
- self.macros = macros
self.init_name = name
- log.trace('config: %s' % (name))
- self.disable_macro_reassign = False
- self.configpath = []
self.wss = re.compile(r'\s+')
self.tags = re.compile(r':+')
self.sf = re.compile(r'%\([^\)]+\)')
- for arg in self.opts.args:
- if arg.startswith('--with-') or arg.startswith('--without-'):
- if '=' in arg:
- label, value = arg.split('=', 1)
- else:
- label = arg
- value = None
- label = label[2:].lower().replace('-', '_')
- if value:
- self.macros.define(label, value)
- else:
- self.macros.define(label)
- self._includes = []
- self.load_depth = 0
- self.pkgconfig_prefix = None
- self.pkgconfig_crosscompile = False
- self.pkgconfig_filter_flags = False
+ self.set_macros(macros)
+ self._reset(name)
self.load(name)
def __str__(self):
@@ -286,6 +265,34 @@ class file:
s += str(self._packages[_package])
return s
+ def _reset(self, name):
+ self.name = name
+ self.load_depth = 0
+ self.configpath = []
+ self._includes = []
+ self._packages = {}
+ self.in_error = False
+ self.lc = 0
+ self.conditionals = {}
+ self._packages = {}
+ self.package = 'main'
+ self.disable_macro_reassign = False
+ self.pkgconfig_prefix = None
+ self.pkgconfig_crosscompile = False
+ self.pkgconfig_filter_flags = False
+ for arg in self.opts.args:
+ if arg.startswith('--with-') or arg.startswith('--without-'):
+ if '=' in arg:
+ label, value = arg.split('=', 1)
+ else:
+ label = arg
+ value = None
+ label = label[2:].lower().replace('-', '_')
+ if value:
+ self.macros.define(label, value)
+ else:
+ self.macros.define(label)
+
def _relative_path(self, p):
sbdir = None
if '_sbdir' in self.macros:
@@ -1053,6 +1060,12 @@ class file:
def _info_append(self, info, data):
self._packages[self.package].info_append(info, data)
+ def set_macros(self, macros):
+ if macros is None:
+ self.macros = opts.defaults
+ else:
+ self.macros = macros
+
def load(self, name):
def common_end(left, right):
@@ -1066,12 +1079,7 @@ class file:
return end
if self.load_depth == 0:
- self.in_error = False
- self.lc = 0
- self.name = name
- self.conditionals = {}
- self._packages = {}
- self.package = 'main'
+ self._reset(name)
self._packages[self.package] = package(self.package,
self.define('%{_arch}'),
self)