MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / ProjectGroup

Class ProjectGroup

tools/ng/project.py:15–147  ·  view source on GitHub ↗

Represents a project group (component). This class encapsulates the information from DefineGroup calls.

Source from the content-addressed store, hash-verified

13
14@dataclass
15class ProjectGroup:
16 """
17 Represents a project group (component).
18
19 This class encapsulates the information from DefineGroup calls.
20 """
21 name: str
22 sources: List[str]
23 dependencies: List[str] = field(default_factory=list)
24 environment: Any = None # SCons Environment
25
26 # Paths and defines
27 include_paths: List[str] = field(default_factory=list)
28 defines: Dict[str, str] = field(default_factory=dict)
29
30 # Compiler flags
31 cflags: str = ""
32 cxxflags: str = ""
33 asflags: str = ""
34 ldflags: str = ""
35
36 # Local options (only for this group)
37 local_cflags: str = ""
38 local_cxxflags: str = ""
39 local_include_paths: List[str] = field(default_factory=list)
40 local_defines: Dict[str, str] = field(default_factory=dict)
41
42 # Libraries
43 libs: List[str] = field(default_factory=list)
44 lib_paths: List[str] = field(default_factory=list)
45
46 # Build objects
47 objects: List[Any] = field(default_factory=list)
48
49 def build(self, env) -> List:
50 """
51 Build the group and return objects.
52
53 Args:
54 env: SCons Environment
55
56 Returns:
57 List of build objects
58 """
59 if not self.sources:
60 return []
61
62 # Clone environment if we have local options
63 build_env = env
64 if self._has_local_options():
65 build_env = env.Clone()
66 self._apply_local_options(build_env)
67
68 # Apply global options
69 self._apply_global_options(build_env)
70
71 # Build objects
72 self.objects = []

Callers 1

DefineGroupMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected