Ok, here is an idea / feature request.
currently, fpcupdeluxe creates a git clone (and checkout) for each fpc build.
However, I usually have several builds of the same fpc version (debug dwarf 2/3, optimized, ...). There is no need to duplicate the source for each build.
My usual folder structure is like this
fpc_3.2.2/
source/
64/
gw2/ ### 64 bit and cross 32 bit compiler
gw3/
O2/
O4/
32/
gw2/ ### 32 bit and cross 64 bit compiler
gw3/
O2/
O4/
fpc_3.2.3/
.......
Each version requires the source just once.
I haven't yet spent to much time to try and set up the above with lots of individual config files (if possible at all). Mainly because that would mean to create dozens of configs.
Ideally I have on config for each fpc version, and then could manage all the builds within that one config.
Then updating all the fixes 3.2.3 builds could be a single click.
Maybe something like installing cross compilers. Adding each build-config => and then being able to update them all.
The above is only one step in reducing sources and git clones.
I actually have a single git clone.
And then I use the following to export the source for a particular commit
(requires a not too old version of git)
git switch -d -f origin/fixes_3_2
git -C /home/m/fpc/git/fpc-source --work-tree=/home/m/fpc_3.2.3/source restore .
This isn't actually fully optimized, because the "switch" also creates a checkout of the files in the fpc-source dir.
Not tested, but it should probably be
git -C /home/m/fpc/git/fpc-source --work-tree=/home/m/fpc_3.2.3/source restore --source=origin/fixes_3_2 .
For this, it would be good if fpcupdeluxe had the option to specify an "git dir" (that may or may not exist) outside of the "fpcupdeluxe work dir". And then use the above git command to create the source for the build(s).
Instead of using the "export" trick for git, the source could also be a "git worktree". But that breaks easily if folders are renamed / moved.
Quick observation on the "cross" tab for install/uninstall.
I can select any radio button, both the "install" and "uninstall" button are active. Never mind if that particular target is installed or not.