I am currently experimenting with getting Blender compiling with an improved build system (mainly for ease of use and speed). One thing that struck me is the quite messy interdependency between things like blenkernel, blenlibrary, bmesh, imbuf, etc. Which does work with CMake (legacy) but not with modern CMake (using proper target properties) and other build systems.
Now my question is whether this is actually intended or rather a “bug”.
Depending on that I would either:
- separate the headers from the actual compilation units. This is a bit messy because when building an executable you actually have to manually select the necessary implementations then.
- Try to split the libraries further apart so that they can be used without interdependencies. Which might be really challenging ™.
From all the docs I sadly could not find who is actually responsible for the build system.
Any pointers are very welcome.