Our project got pretty big and our build system does not scale anymore. We are doing cross platform development on linux machines. We have too many platforms to build against and even more build options. We believe that we need to upgrade our Makefile based build environment.
These are the requirements (in an ideal world):
- Fast (so no libtool)
- Can do parallel builds
- Cross compile friendly
- Ccache integration
- Does incremental builds and can short circuit if certain conditions are met (short circuit if a,b,c options have not changed, rebuild if they did)
- Easily scriptable (python integration would be perfect)
- User friendly syntax
- Distributed system. Modules can be developed separately from each other
- Can build third party libraries (that use autotools, cmake ..)
- Can track dependencies between modules (but flexible enough so that modules can be replaced by alternative external ones).
- built-in unit testing support
- Large binaries can be stored separately from the version control and can be downloaded if needed
- Can keep track of open source licenses
- git integration
Are you aware of any tools (or group of tools) that would meet (at least some of) these requirements? Currently I am leaning towards gyp+ninja. But syntax is not very friendly and there is no documentation. So it is a tough sell.