@@ -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