Could you please add more information and context to your question?
For example, what does the build system have to support?
- Only the compilation of source files? Or also dependency management? Or continuous integration (like Jenkins)?
- Used by how many developers? Does it need to be distributed?
- How about dependency management? Assuming there are some way to specify explicit dependencies and the build system is able to identify which resources that need to be rebuild upon a change of some components (i.e., via a DAG).
Feel free to add more if there's something that I missed.
Some other requirements to consider:
- Handle versioning? For example, in web development, the htmls need to refer to the correct versions of .js and .css files
- Deal with secrets? For example, if the source code refer to some key or connection strings, does the build system need to plug-in the correct values for different environments?
- Authentication for users? Is the system a product like VSTS/visualstudioonline or is it an internal service?