Seems nice from a "been there, done that" point of view. Usually rolling your own solution helps in better understanding the underlying problem.
But, as many people pointed out, having a custom build system calls for trouble (eg cross compilation, prefixes, feature control) and often produces a lot of work to maintain or cater to new needs.
Source: We roll a package based, distributed build and test system. Most build packages wrap around cmake.
A core dev created it, and while he works on the build system, he can't work on the product.
And if he ever decides to switch company or has a severe accident, well... (The code is mostly well written, but still the code base is huge since it was adapted to changing needs in the past decade; and while we're not tiny, we're small enough to lack the resources of having him train a second person in the guts of the system - I know probably 70% of it and am regularly lost).
Our company is in the same boat - we have this weird, custom package management system that's a franken-hybrid of shell scripts, vanilla Python, Scons, and CMake. Every time I have to do anything even slightly outside of the norm with it, it breaks badly.
And there's this huge sunk-cost that makes it functionally impossible to suggest replacing with anything else. It mostly works but it's getting crustier by the day.
But, as many people pointed out, having a custom build system calls for trouble (eg cross compilation, prefixes, feature control) and often produces a lot of work to maintain or cater to new needs.
Source: We roll a package based, distributed build and test system. Most build packages wrap around cmake. A core dev created it, and while he works on the build system, he can't work on the product. And if he ever decides to switch company or has a severe accident, well... (The code is mostly well written, but still the code base is huge since it was adapted to changing needs in the past decade; and while we're not tiny, we're small enough to lack the resources of having him train a second person in the guts of the system - I know probably 70% of it and am regularly lost).
If it was up to me, we'd take a look at bazel.