In this topic I would like to gather requirements for more powerful workspaces in CB.
Feel free to add ideas as you like.
Later on we can prioritize them and make a roadmap.
Req 1 :
- ability to set compiler options, that will apply to all projects (and as such to any target in a project) in the workspace
- these settings need to persist ==> in foo.workspace file
Req 2 :
- ability to reload a project (now one has to close it and reopen it [that could be the implementation for a reload, but it is a bad one since the reloaded project will end up at the end in the project tree/workspace and not where it used to be)
- this is highly important if one wants to reload a project for the unitsglob feature
Req 3 :
- in the use cases where projects have similar targets (debug / release paradigm), it should be possible to set compiler options on the workspace level per target (so it will apply to all targets of the same name in all the projects in the workspace)
Note : the debug/release paradigm is use a lot, completely different to CB's own approach of a project containing targets which are actually subprojects, it might not be bad to have a clear distinction/switch that makes clear which paradigm one is using (to be seen if this is needed)
Req 4 :
- parallel build, now we have parallel build within a project/target, however keeping dependencies in mind, it might even be possible to build several projects in parallel [executable depends on lib a/ lib b /lib c ==> a, b, c could be build in parallel, and then within each lib a parallel build as we have today can occur]
- to be investigated if the dual layer of parallel build will not fight to much (but in 8+ cores this might be a speed up)
... more to add , just have something to start out with ....