123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306 |
- # Copyright (c) 2020 The Linux Foundation
- #
- # SPDX-License-Identifier: Apache-2.0
- from enum import Enum
- class Codemodel:
- def __init__(self):
- super(Codemodel, self).__init__()
- self.paths_source = ""
- self.paths_build = ""
- self.configurations = []
- def __repr__(self):
- return f"Codemodel: source {self.paths_source}, build {self.paths_build}"
- # A member of the codemodel configurations array
- class Config:
- def __init__(self):
- super(Config, self).__init__()
- self.name = ""
- self.directories = []
- self.projects = []
- self.configTargets = []
- def __repr__(self):
- if self.name == "":
- return f"Config: [no name]"
- else:
- return f"Config: {self.name}"
- # A member of the configuration.directories array
- class ConfigDir:
- def __init__(self):
- super(ConfigDir, self).__init__()
- self.source = ""
- self.build = ""
- self.parentIndex = -1
- self.childIndexes = []
- self.projectIndex = -1
- self.targetIndexes = []
- self.minimumCMakeVersion = ""
- self.hasInstallRule = False
- # actual items, calculated from indices after loading
- self.parent = None
- self.children = []
- self.project = None
- self.targets = []
- def __repr__(self):
- return f"ConfigDir: source {self.source}, build {self.build}"
- # A member of the configuration.projects array
- class ConfigProject:
- def __init__(self):
- super(ConfigProject, self).__init__()
- self.name = ""
- self.parentIndex = -1
- self.childIndexes = []
- self.directoryIndexes = []
- self.targetIndexes = []
- # actual items, calculated from indices after loading
- self.parent = None
- self.children = []
- self.directories = []
- self.targets = []
- def __repr__(self):
- return f"ConfigProject: {self.name}"
- # A member of the configuration.configTargets array
- class ConfigTarget:
- def __init__(self):
- super(ConfigTarget, self).__init__()
- self.name = ""
- self.id = ""
- self.directoryIndex = -1
- self.projectIndex = -1
- self.jsonFile = ""
- # actual target data, loaded from self.jsonFile
- self.target = None
- # actual items, calculated from indices after loading
- self.directory = None
- self.project = None
- def __repr__(self):
- return f"ConfigTarget: {self.name}"
- # The available values for Target.type
- class TargetType(Enum):
- UNKNOWN = 0
- EXECUTABLE = 1
- STATIC_LIBRARY = 2
- SHARED_LIBRARY = 3
- MODULE_LIBRARY = 4
- OBJECT_LIBRARY = 5
- UTILITY = 6
- # A member of the target.install_destinations array
- class TargetInstallDestination:
- def __init__(self):
- super(TargetInstallDestination, self).__init__()
- self.path = ""
- self.backtrace = -1
- def __repr__(self):
- return f"TargetInstallDestination: {self.path}"
- # A member of the target.link_commandFragments and
- # archive_commandFragments array
- class TargetCommandFragment:
- def __init__(self):
- super(TargetCommandFragment, self).__init__()
- self.fragment = ""
- self.role = ""
- def __repr__(self):
- return f"TargetCommandFragment: {self.fragment}"
- # A member of the target.dependencies array
- class TargetDependency:
- def __init__(self):
- super(TargetDependency, self).__init__()
- self.id = ""
- self.backtrace = -1
- def __repr__(self):
- return f"TargetDependency: {self.id}"
- # A member of the target.sources array
- class TargetSource:
- def __init__(self):
- super(TargetSource, self).__init__()
- self.path = ""
- self.compileGroupIndex = -1
- self.sourceGroupIndex = -1
- self.isGenerated = False
- self.backtrace = -1
- # actual items, calculated from indices after loading
- self.compileGroup = None
- self.sourceGroup = None
- def __repr__(self):
- return f"TargetSource: {self.path}"
- # A member of the target.sourceGroups array
- class TargetSourceGroup:
- def __init__(self):
- super(TargetSourceGroup, self).__init__()
- self.name = ""
- self.sourceIndexes = []
- # actual items, calculated from indices after loading
- self.sources = []
- def __repr__(self):
- return f"TargetSourceGroup: {self.name}"
- # A member of the target.compileGroups.includes array
- class TargetCompileGroupInclude:
- def __init__(self):
- super(TargetCompileGroupInclude, self).__init__()
- self.path = ""
- self.isSystem = False
- self.backtrace = -1
- def __repr__(self):
- return f"TargetCompileGroupInclude: {self.path}"
- # A member of the target.compileGroups.precompileHeaders array
- class TargetCompileGroupPrecompileHeader:
- def __init__(self):
- super(TargetCompileGroupPrecompileHeader, self).__init__()
- self.header = ""
- self.backtrace = -1
- def __repr__(self):
- return f"TargetCompileGroupPrecompileHeader: {self.header}"
- # A member of the target.compileGroups.defines array
- class TargetCompileGroupDefine:
- def __init__(self):
- super(TargetCompileGroupDefine, self).__init__()
- self.define = ""
- self.backtrace = -1
- def __repr__(self):
- return f"TargetCompileGroupDefine: {self.define}"
- # A member of the target.compileGroups array
- class TargetCompileGroup:
- def __init__(self):
- super(TargetCompileGroup, self).__init__()
- self.sourceIndexes = []
- self.language = ""
- self.compileCommandFragments = []
- self.includes = []
- self.precompileHeaders = []
- self.defines = []
- self.sysroot = ""
- # actual items, calculated from indices after loading
- self.sources = []
- def __repr__(self):
- return f"TargetCompileGroup: {self.sources}"
- # A member of the target.backtraceGraph_nodes array
- class TargetBacktraceGraphNode:
- def __init__(self):
- super(TargetBacktraceGraphNode, self).__init__()
- self.file = -1
- self.line = -1
- self.command = -1
- self.parent = -1
- def __repr__(self):
- return f"TargetBacktraceGraphNode: {self.command}"
- # Actual data in config.target.target, loaded from
- # config.target.jsonFile
- class Target:
- def __init__(self):
- super(Target, self).__init__()
- self.name = ""
- self.id = ""
- self.type = TargetType.UNKNOWN
- self.backtrace = -1
- self.folder = ""
- self.paths_source = ""
- self.paths_build = ""
- self.nameOnDisk = ""
- self.artifacts = []
- self.isGeneratorProvided = False
- # only if install rule is present
- self.install_prefix = ""
- self.install_destinations = []
- # only for executables and shared library targets that link into
- # a runtime binary
- self.link_language = ""
- self.link_commandFragments = []
- self.link_lto = False
- self.link_sysroot = ""
- # only for static library targets
- self.archive_commandFragments = []
- self.archive_lto = False
- # only if the target depends on other targets
- self.dependencies = []
- # corresponds to target's source files
- self.sources = []
- # only if sources are grouped together by source_group() or by default
- self.sourceGroups = []
- # only if target has sources that compile
- self.compileGroups = []
- # graph of backtraces referenced from elsewhere
- self.backtraceGraph_nodes = []
- self.backtraceGraph_commands = []
- self.backtraceGraph_files = []
- def __repr__(self):
- return f"Target: {self.name}"
|