@@ -255,6 +255,29 @@ def __repr__(self) -> str:
255255 )
256256
257257
258+ class TargetLanguageStandard :
259+ __slots__ = ("backtraces" , "standard" )
260+
261+ def __init__ (self , standard : str , backtraces : Optional [list [BacktraceNode ]]):
262+ self .standard = standard
263+ self .backtraces = backtraces
264+
265+ @classmethod
266+ def from_dict (cls , dikt : dict [str , Any ], backtraceGraph : BacktraceGraph ) -> "TargetLanguageStandard" :
267+ standard = dikt ["standard" ]
268+ backtraces = None
269+ if "backtraces" in dikt :
270+ backtraces = [backtraceGraph .nodes [backtrace ] for backtrace in dikt ["backtraces" ]]
271+ return cls (standard , backtraces )
272+
273+ def __repr__ (self ) -> str :
274+ return "{}(standard={}, backtraces={})" .format (
275+ type (self ).__name__ ,
276+ self .standard ,
277+ self .backtraces ,
278+ )
279+
280+
258281class TargetCompileGroupInclude :
259282 __slots__ = ("path" , "isSystem" , "backtrace" )
260283
@@ -328,14 +351,15 @@ def __repr__(self) -> str:
328351
329352
330353class TargetCompileGroup :
331- __slots__ = ("sources" , "language" , "compileCommandFragments" , "includes" , "precompileHeaders" , "defines" , "sysroot" )
354+ __slots__ = ("sources" , "language" , "languageStandard" , " compileCommandFragments" , "includes" , "precompileHeaders" , "defines" , "sysroot" )
332355
333- def __init__ (self , sources : list ["TargetSource" ], language : str ,
356+ def __init__ (self , sources : list ["TargetSource" ], language : str , languageStandard : Optional [ TargetLanguageStandard ],
334357 compileCommandFragments : list [TargetCompileFragment ], includes : list [TargetCompileGroupInclude ],
335358 precompileHeaders : list [TargetCompileGroupPCH ], defines : list [TargetCompileGroupDefine ],
336359 sysroot : Optional [Path ]):
337360 self .sources = sources
338361 self .language = language
362+ self .languageStandard = languageStandard
339363 self .compileCommandFragments = compileCommandFragments
340364 self .includes = includes
341365 self .precompileHeaders = precompileHeaders
@@ -351,7 +375,8 @@ def from_dict(cls, dikt: dict[str, Any], target_sources: list["TargetSource"], b
351375 defines = list (TargetCompileGroupDefine .from_dict (tcdef , backtraceGraph ) for tcdef in dikt .get ("defines" , ()))
352376 sysroot = Path (dikt ["sysroot" ]["path" ]) if "sysroot" in dikt and "path" in dikt ["sysroot" ] else None
353377 sources = list (target_sources [tsi ] for tsi in dikt ["sourceIndexes" ])
354- return cls (sources , language , compileCommandFragments , includes , precompileHeaders , defines , sysroot )
378+ languageStandard = TargetLanguageStandard .from_dict (dikt .get ("languageStandard" , {}), backtraceGraph ) if "languageStandard" in dikt else None
379+ return cls (sources , language , languageStandard , compileCommandFragments , includes , precompileHeaders , defines , sysroot )
355380
356381 def __repr__ (self ) -> str :
357382 return "{}(sources={}, language='{}', compileCommandFragments={}, #includes={}, #precompileHeaders={}, #defines={}, sysroot={})" .format (
0 commit comments