Get complete project information for generators. Returns: Dictionary with project information
(self)
| 216 | return all_objects |
| 217 | |
| 218 | def get_project_info(self) -> Dict[str, Any]: |
| 219 | """ |
| 220 | Get complete project information for generators. |
| 221 | |
| 222 | Returns: |
| 223 | Dictionary with project information |
| 224 | """ |
| 225 | # Collect all unique values |
| 226 | all_sources = [] |
| 227 | all_includes = set() |
| 228 | all_defines = {} |
| 229 | all_libs = [] |
| 230 | all_lib_paths = set() |
| 231 | |
| 232 | for group in self.groups: |
| 233 | info = group.get_info() |
| 234 | |
| 235 | # Sources |
| 236 | all_sources.extend(info['sources']) |
| 237 | |
| 238 | # Include paths |
| 239 | all_includes.update(info['include_paths']) |
| 240 | |
| 241 | # Defines |
| 242 | all_defines.update(info['defines']) |
| 243 | |
| 244 | # Libraries |
| 245 | all_libs.extend(info['libs']) |
| 246 | all_lib_paths.update(info['lib_paths']) |
| 247 | |
| 248 | return { |
| 249 | 'groups': [g.get_info() for g in self.groups], |
| 250 | 'all_sources': all_sources, |
| 251 | 'all_includes': sorted(list(all_includes)), |
| 252 | 'all_defines': all_defines, |
| 253 | 'all_libs': all_libs, |
| 254 | 'all_lib_paths': sorted(list(all_lib_paths)) |
| 255 | } |
| 256 | |
| 257 | def clear(self) -> None: |
| 258 | """Clear all registered groups.""" |
no test coverage detected