I could refactor the project system, but I think I will hold off on that for
now. I will just setup
JITPipe which later on can be remade as needed to
support a new refactored project system. The project system would keep the
same layout, but it would just be new cleaner classes.
Okay, forget that I am writing new classes. But I will keep the old code
around until nothing uses it. Basically my idea is
SourceManager. A later
BinaryManager will depend on a
SourceManager but also have the means to
add new binary projects and such. Depending on the complexity I want, I can
allow sources to be mutable. If sources are mutable then that would be a bit
more complex. For the most part however, the build system runs, loads the
needed information, then it will stop. But I can have it where new source code
could dynamically be added. For the most part though, every source project
will not have dependencies in any way, they will be completely standalone.
This simplifies things. All the dependency logic will be in
for the most part.
I can however, add support for checking ZIP files to see if they are source code. But, the main thing is that it would be nice to support building on limited systems, but that might not be worth it as much. But even then, there could be a ZIP extractor which handles the limited systems.
I would say immutable sources would be much cleaner and simpler to write.
But lazy initialization would be faster though, for the most part.
This means that the
squirreljme-build-base project can go away too so that
the build system is for the most part entirely within a single project.