https://github.com/GauravDawra/Beast Skip to content Sign up * Product + Features + Mobile + Actions + Codespaces + Copilot + Packages + Security + Code review + Issues + Integrations + GitHub Sponsors + Customer stories * Team * Enterprise * Explore + Explore GitHub + Learn and contribute + Topics + Collections + Trending + Skills + GitHub Sponsors + Open source guides + Connect with others + The ReadME Project + Events + Community forum + GitHub Education + GitHub Stars program * Marketplace * Pricing + Plans + Compare plans + Contact Sales + Education [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} GauravDawra / Beast Public * Notifications * Fork 1 * Star 62 A build system built for speed and power gauravdawra.github.io/beast-docs License Apache-2.0 license 62 stars 1 fork Star Notifications * Code * Issues 0 * Pull requests 0 * Actions * Projects 0 * Wiki * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights GauravDawra/Beast This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags 1 branch 3 tags Code Latest commit @GauravDawra GauravDawra [del] unnecessary comments ... 0407397 Jul 1, 2022 [del] unnecessary comments 0407397 Git stats * 73 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .github/workflows resources/logo src vendor .gitmodules LICENSE Makefile NOTICE README.md main.cpp View code [ ] Beast - The Build System Installation Pre-compiled binaries Compiling from source Getting started with Beast Using Beast in your project Licensing Contribution Support Great!!! You are all set to start using Beast. Go ahead and unleash the Beast!!! README.md Beast - The Build System [logo] Beast is a build system designed for the purpose of power, speed and productivity. This build system tries to combine ease of use with high efficiency. It is very easy to use syntactically, and also provides great build times! The complete documentation for Beast can be found here. --------------------------------------------------------------------- MacOS Ubuntu Beast builds projects based on the information provided in a beast build file. In this build file, the user defines what all items need to be built (targets), how they should be built (build rules), and what all targets need to be ready to build a particular target ( dependencies). In this way, Beast works on a comprehensive and easy to use target-dependency model. For more information about the particular aspects of a build file, see Writing a Beast File. Not only does Beast provide you with an easy to understand structure for all your build needs, it comes with a super-easy and intuitive syntax. This causes Beast to be a tool suitable for both highly experienced programmers and beginners. In addition, Beast has a highly optimized build procedure which works well for multiple threads too. Understanding the build procedure can further help you write optimized beast build files. See Build procedure. * Introduction * Installation * Getting started * Using Beast in your project * Licensing * Contribution * Support Installation Installing Beast is super-easy. You can either download your system binaries directly or you can compile it from source yourself. Pre-compiled binaries You can directly download your system specific binaries from the release section on github. Once you have downloaded the binaries, make sure that the location of this executable is present in the PATH environment variable. /usr/ local/bin is the preferred position to place the beast executable. Compiling from source For compiling the souce, you would require: * make * GNU G++ (>= 10.0) or Clang * flex * bison Note: flex and bison are required only if the parser.cpp/hpp and scanner.cpp/h files are not present in your source code or is outdated. Follow these steps to compile: 1. Clone the github Beast repository with the following command: git clone https://github.com/GauravDawra/Beast Beast --recursive Make sure you use the --recursive flag since the code has some submodule dependencies 2. Move into the Beast directory using cd Beast 3. Now we will compile the source code using make. If your g++ points to one of the suitable compilers listed above the simply run make MODE=RELEASE Otherwise, you should point CXX environment variable to a suitable compiler and then run the above command. Your command will then look like: CXX= make MODE=RELEASE. 4. An executable named beast should then appear in rhe main working directory if the compilation was successful. To add it to the $PATH at /usr/local/bin, run make install This is a root action so you will have to enter your password for this step. If you don't want to install this to your /usr/local/ bin, you can directly use the beast binary. Getting started with Beast Beast has a very simple to follow Quickstart which helps you use Beast in a sample project. This quickstart can be found in the quickstart repository or in the documentation Quickstart page. It contains a very easy to follow tutorial. To learn more about what is going on in the beast.build file provided with the quickstart repository, see Writing a Beast file. Using Beast in your project Beast is very easy to integrate in your project with the help of just one beast build file, beast.build. A beast file can be written with minimal syntax and is very intuitive to use. There are a bunch functionalities that make the file writing process easy and intuitive. Also, Beast command line interface can be easily used to build your project and sub-directories. 1. Place the beast.build file in the root working directory of your project. For more information on how to write the build file, look at Writing a Beast file. 2. Once you have placed the beast file in your project directory, navigate to this directory on a shell. Simply run beast in your terminal to start the build process. This will start the build process. The necessary build rules will be carried out in the order taking into account the dependencies. For more information on the build procedure, look at Build procedure. You can also use beast itself for various directories and sub-directories. If you want to build a subdirectory in your project you can simply use the -d CLI option within the beast file at your main directory. For example, if you have a subfolder called sub within the main directory of your project, place a beast file in both, this main working directory and sub directory. Now, from within the beast.build file in your main directory simply call build sub: ! beast -d sub For a hands on tutorial on building a sample project, look at Quickstart! Licensing Beast uses the Apache-2.0 license. Please read the license carefully. Contribution Beast is primarily written in C++ for speed and optimizations. You can easily contribute to Beast by making a pull request. Although, it is advised to contact me before making a pull request. For more details about contribution check out Contribution in the official documentation. See Support for contact details. Support For any kind of bugs and feature requests it is adviced to use Github issues. But you can also join the official mailing list and drop an email at beast-build@googlegroups.com once you are a member, for any kind of support. You can also email me directly at gaurav19039@iiitd.ac.in. Great!!! You are all set to start using Beast. Go ahead and unleash the Beast!!! About A build system built for speed and power gauravdawra.github.io/beast-docs Topics c macos linux build cpp beast build-tool build-system Resources Readme License Apache-2.0 license Stars 62 stars Watchers 2 watching Forks 1 fork Releases 2 Nimble Latest Jul 1, 2022 + 1 release Packages 0 No packages published Languages * C++ 92.0% * C 5.3% * Makefile 2.7% Footer (c) 2022 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.