We need to separate out each feature of the engine into a modular build target. We should have "Modules" for different parts of the engine to reduce dependencies and make for a scalable compile infrastructure.
For example, no gameplay code needs to know anything about rendering, so it should be in it's own separate build module and have a separate "_API" export.
We can accomplish this with CMake I think, but I'm not an expert in CMake by any means to this may be tricky to get to a state where adding new modules is simple and easy. I basically want something conceptually similar to how Unreal handles this with the build.cs files, so that for each module can have it's own set of dependencies.
We could even go as far as to break certain modules out into their own Submodules, so that active development on something like rendering for example has no effect on development on Gameplay.
We need to separate out each feature of the engine into a modular build target. We should have "Modules" for different parts of the engine to reduce dependencies and make for a scalable compile infrastructure.
For example, no gameplay code needs to know anything about rendering, so it should be in it's own separate build module and have a separate "_API" export.
We can accomplish this with CMake I think, but I'm not an expert in CMake by any means to this may be tricky to get to a state where adding new modules is simple and easy. I basically want something conceptually similar to how Unreal handles this with the build.cs files, so that for each module can have it's own set of dependencies.
We could even go as far as to break certain modules out into their own Submodules, so that active development on something like rendering for example has no effect on development on Gameplay.