I hope I am not to late to comment on this. Gprbuild is far superior to gnatmake. I've built windows programs with Ada libaries built with gnatmake. The process with gprbuild hides so much of the complexity. And it can build C++ code too while gnatmake is Ada only.
To my taste, your solution relies too heavily on libraries. The Ada source already contains most of the depedency information. Have shared.gpr list the shared source directories. Let exes_comp-x.gpr with "shared"; and add its own source directories and list all the executables in the Main list.
And without the DLLs programs should load faster and have fewer security holes!