JustBuild (Adaptive Just-in-time Build, Certify, Deploy ... Export)
Build anything (you want), anywhere (in project workspace), in a simple and straightforward way!
You focus on development, JustBuild takes care of the rest.
The fastest, safest and easiest build system (known in our galaxy ;).
JustBuild
An adaptive JIT build, test, and deployment system for multiple projects, with LSP support.
// application development software
Benefits of JustBuild
Gain Time
- Gain time - by not spending hours on repetitive manual tasks.
- Save time - with parallel builds and automated tests.
Focus on what is important
Automate the development process from code to delivery.
Now you can focus on features and functionality.
Trust the Reliability of your project
- Objects are rebuilt when necessary and combined in the correct order.
- Delivery stage is only possible after Certify steps have been completed.
Uniqueness of JustBuild
- Runs from anywhere in the source tree.
- It allows maximum flexibility and control over each stage.
- It can replace or control CI/CD activities, as the user wishes.
How else can it be described?
JustBuild is,
conceptually:
Abcd and Bany and (a variant of) Jake ...
and more than that.
At the same time,
JustBuild can do more,
faster,
and is more flexible than all the listed tools combined.
Compare JustBuild with Abcd
-
Abcd prepares instructions in advance,
then it gives control to make* (Jake, Make, Ninja, CMake).
- The "make*" tool then runs the appropriate commands using prepared rules.
-
JustBuild controls all the steps during the build (and test and so on).
- It also runs the appropriate commands directly
and does not need to use an intermediary "make*" tool.
-
Both Abcd and JustBuild manage dependencies between projects and within each project.
- JustBuild has the advantage that dependencies can be simpler and shorter in some cases.
It can directly see what is or is not necessary,
in order to achieve a specific goal in a dependency graph.
-
Both Abcd and JustBuild use the same syntax for config files.
They share the same core configuration rules.
- There are, however, a few differences, which are documented where they appear.
LSP support
- JustBuild provides file lists,
build flags,
which ARCH is active,
and so on.
- This data can be used by ReGen4Ide or any other tool you want to update the
files used by the LSP tools.
- ReGen4Ide,
launched during build,
asks where these lists are located,
then reads what is needed and updates (if there are changes) the existing
files already used by the LSP tools.
- The LSP tools can
then display updated information to the user for code completion.
JustBuild documentation
-
JustBuild's features are described in its configuration files, at the right spot.
- There is also a "doc-info" directory with the main concepts described in separate files.
-
JustBuild and Abcd have the same syntax, common concepts, and common variables. Therefore, they use the same main configuration directory and the same project-specific configuration file.
- There are some differences, however, as JustBuild can be simpler and at the same time can do more than Abcd. The differences are documented as appropriate.
- By convention, configuration files with the prefix "abcd." or "_abcd." are read only by Abcd, and those with the prefix "justbuild." or "_justbuild." are read only by JustBuild. As you can see, it is just a convention chosen in configuration files. Unknown variables (used by the other tool) are ignored, as are any variables that are not used to modify known variables.
- Also note that the hook scripts previously injected by Abcd into the "*make" files are no longer needed in JustBuild, as the commands can be written directly into the JustBuild steps. However, if desired, the hook scripts can still be launched from the JustBuild steps.
-
In the "downloads" section of the website there is an archive with the main configuration directory.
- Unpack it, place it at the top of your workspace, and adapt it to your needs.
- Also in the "downloads" section there is an archive with various project groups and example projects, as well as the same main configuration directory that is at the top.
-
The main configuration contains sections for gcc and clang, for C+-, C++ and C. Each is grouped by compilation tool, language used and operating system. Feel free to adapt it to your needs. Very likely that you are using other compilation flags.
- Use your own build chain, e.g. MSVC suite.
- Add your own preferred language, e.g. Golang, Rust, Fortran, Assembler, maybe Java.
- Inspired by the comments in the build steps, add your own test libraries, coverage tools, code adapters, automated reporting, and so on.
- It may be useful to know that multiple languages can be used for the same executable, as long as the linker can link them correctly so that they work as expected at runtime.
-
It might be useful to know that certain sections of the steps can be enabled or disabled depending on the dedicated computing environment, in case detailed control by context is required.
See also:
JustBuild support for IDEs
Practical sessions with Abcd, Jake and review tools