Skip to content

Commit 247dbd0

Browse files
erikwaolofk
authored andcommitted
Add cores_root, resolve_env_vars_early, allow_additional_properties, verbose, no_export and system_name properties to Config class and make it possible to override config options from args
1 parent 797ac46 commit 247dbd0

File tree

1 file changed

+68
-1
lines changed

1 file changed

+68
-1
lines changed

fusesoc/config.py

Lines changed: 68 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,9 +145,15 @@ def _get_ignored_dirs(self):
145145
def _set_default_section(self, name, val):
146146
self._cp.set(Config.default_section, name, str(val))
147147

148+
def _arg_or_val(self, arg, val):
149+
if hasattr(self, arg):
150+
return getattr(self, arg)
151+
else:
152+
return val
153+
148154
@property
149155
def build_root(self):
150-
return self._get_build_root()
156+
return self._arg_or_val("args_build_root", self._get_build_root())
151157

152158
@build_root.setter
153159
def build_root(self, val):
@@ -169,6 +175,14 @@ def library_root(self):
169175
def library_root(self, val):
170176
self._set_default_section("library_root", val)
171177

178+
@property
179+
def cores_root(self):
180+
return self._arg_or_val("args_cores_root", self._paths_from_cfg("cores_root"))
181+
182+
@cores_root.setter
183+
def cores_root(self, val):
184+
self._set_default_section("cores_root", val)
185+
172186
@property
173187
def ignored_dirs(self):
174188
return self._get_ignored_dirs()
@@ -179,6 +193,59 @@ def ignored_dirs(self, val):
179193
"ignored_dirs", " ".join(val) if type(val) == list else val
180194
)
181195

196+
@property
197+
def resolve_env_vars_early(self):
198+
return self._arg_or_val(
199+
"args_resolve_env_vars_early",
200+
self._cp.getboolean(
201+
Config.default_section, "resolve_env_vars_early", fallback=False
202+
),
203+
)
204+
205+
@resolve_env_vars_early.setter
206+
def resolve_env_vars_early(self, val):
207+
self._set_default_section("resolve_env_vars_early", val)
208+
209+
@property
210+
def allow_additional_properties(self):
211+
return self._arg_or_val(
212+
"args_allow_additional_properties",
213+
self._cp.getboolean(
214+
Config.default_section, "allow_additional_properties", fallback=False
215+
),
216+
)
217+
218+
@allow_additional_properties.setter
219+
def allow_additional_properties(self, val):
220+
self._set_default_section("allow_additional_properties", val)
221+
222+
@property
223+
def verbose(self):
224+
# Runtime config only, not possible to set in config file
225+
return self._arg_or_val("args_verbose", False)
226+
227+
@property
228+
def no_export(self):
229+
return self._arg_or_val(
230+
"args_no_export",
231+
self._cp.getboolean(Config.default_section, "no_export", fallback=False),
232+
)
233+
234+
@no_export.setter
235+
def no_export(self, val):
236+
self._set_default_section("no_export", val)
237+
238+
@property
239+
def system_name(self):
240+
return self._arg_or_val(
241+
"args_system_name",
242+
self._cp.get(Config.default_section, "system_name", fallback=None),
243+
)
244+
245+
@system_name.setter
246+
def system_name(self, val):
247+
self._set_default_section("system_name", val)
248+
182249
def write(self):
183250
if not hasattr(self, "_path"):
184251
raise RuntimeError("No FuseSoC config file found - can't write config")

0 commit comments

Comments
 (0)