75 lines
1.8 KiB
Markdown
75 lines
1.8 KiB
Markdown
# TBuild
|
|
|
|
TBuild is a build system for TempleOS and ZealOS. It features automatic code
|
|
conversion for ZealOS and dependency management.
|
|
|
|
## Building and installing
|
|
|
|
To build, simply run `make`. After it has finished compiling, you can run `make install` to install the resulting binary into your system.
|
|
|
|
## Usage
|
|
|
|
```
|
|
Usage: tbuild [command]
|
|
|
|
Commands:
|
|
* init|i [path=.] - Setup a new project.
|
|
* build|. [--zeal|-z|-Z] - Build project in current working directory.
|
|
* clean - Clean output code in current working directory.
|
|
|
|
To see manifest file usage, check out man tbuild(1)
|
|
```
|
|
|
|
## Manifest file
|
|
|
|
The manifest file is a file in the TOML format which contains metadata about
|
|
your project. There are two main sections: `General` and `Dependencies`.
|
|
|
|
### The General section
|
|
|
|
- Name: str - The name of the project.
|
|
- Author: str - The name of the author.
|
|
- Version: str - The project's version.
|
|
|
|
### The Dependencies section
|
|
|
|
This section follows a format for each dependency:
|
|
|
|
```
|
|
<name> = "<git url>"
|
|
```
|
|
|
|
So, for example, if you wish to add the ac97 loadable driver into your project,
|
|
you can add an entry like such:
|
|
|
|
```
|
|
[Dependencies]
|
|
ac97 = "https://git.xslendi.xyz/slendi/ac97.git"
|
|
```
|
|
|
|
And if you wish to be in a `AC97` directory instead:
|
|
|
|
```
|
|
[Dependencies]
|
|
AC97 = "https://git.xslendi.xyz/slendi/ac97.git"
|
|
```
|
|
|
|
The dependencies get pulled in and updated at build time.
|
|
|
|
## Scripts
|
|
|
|
You can run Python scripts after your files are placed inside the `build`
|
|
directory by creating a `scripts` folder in the root of your project.
|
|
|
|
It's important to note that scripts DO NOT respect the project's path. As such,
|
|
it is highly recommended to use something like this:
|
|
|
|
```python
|
|
import os
|
|
dir_path = os.path.dirname(os.path.realpath(__file__)) + '/..'
|
|
```
|
|
|
|
It is also important to note that you can have as many subdirectories as you
|
|
wish.
|
|
|