A bit late for the jam 😅 but I wanted to share anyway.
https://gitlab.com/tanoxyz/object-disaster
A bit late for the jam 😅 but I wanted to share anyway.
https://gitlab.com/tanoxyz/object-disaster
There are a lot of complex C/C++ projects on the wild, it can be hard to have an overview of the project's structure. Processing directly the object files and building the graph of dependencies between them is a way to bypass the whatever folder structure and build system has the project.
Moreover this can spot non-obvious dependency cycles between objects.
Raylib object files:

Blender object files:

disaster.exe "\path\to\my\project" whatever_name
The program will generate 3 files:
whatever_name_graph.dot : Graph in .dot format, it can be open with tools like Gephi.
whatever_name_objects_info.csv : Table like information of all the objects found.
whatever_name_edge_table.csv : Table like information about the edges of the graph.
This tool groups multiple objects based on dependency cycles
If we have this relation:
a -> b -> c -> a
a,b and c belong to the same group.
If we have this other relation
a -> b -> c
a, b and c belong to different groups.
This could be useful to spot coupling between modules.