Hi!
It is not only for C/C++, but it can be used for any project in general. This is a low level build system which runs your commands in a shell depending on the rules you define in the beast.build file. Think of it as a faster and more user-friendly replacement to Make. It's 'pythonic' syntax makes it very easy to use and it's build speeds are matching/overtaking those of community standards!
You are right in saying that since any command can be put in the beast file, it is suitable for building a project in any language.
It is a general purpose build system, with focus on speed and usability!
Hi there, it might be a good idea to clear this up early on the github page itself. This is a good idea, but I would not read on after the first page if I don't see that it checks my boxes for what I need. And as I can see it is still not really defining it.
- examples for using it for android or iOS, or java project, and some numbers showing its better performance?
- how to use it for an android project? gradle handles it all with target(sub targets tree structure of the build tasks...), if use Beast, will still be using gradle? or the build tools gradles is calling for different things (compile, packaging,signing...)
1. Since Beast is new, there are not a lot of examples. Benchmarking is going on and it will take some time. In the mean time, you can take a look at how to write beast build files.
2. You can use it for any project you want if you know what are components of your project depend upon what other components. So as I see it, gradle is a build system for Java project in itself. Beast will not be using gradle if you are trying to compile a Java project. BUT.... you can for sure call `gradle` command from inside the beast.build file. Wherever build.gradle file is stored. So that in this case, beast provides you with an easier to use build system.
Let us see an example:
It doesn’t make sense to have your build tool call another build tool to actually perform the build. In that case, why I would not just use Gradle directly?
There can be several reasons for that. Say your project doesn't only require gradle but other tools to be run too. Or say there are some post-scripts or pre-process-scripts that need to be run. They can be done easily like:
Hi! Task runner would not be an appropriate term for this. Since it also defines target based on their modification times. This is what we call a general purpose build system, just like we call Make and Ninja build system.
It can do anything you want if you can provide it with proper shell commands and define targets. This can not only be used for tasks but also for physical building targets that can be built on the machine.
I believe that the project you linked here is itself also a build system and not just a task runner. But again, it uses yaml, which might not be best while defining custom things related to a build system
You are right in saying that since any command can be put in the beast file, it is suitable for building a project in any language.
It is a general purpose build system, with focus on speed and usability!