Skip to content

Latest commit

 

History

History
123 lines (93 loc) · 3.66 KB

File metadata and controls

123 lines (93 loc) · 3.66 KB

Easy Distribute and hacking.

Want to change just a couple lines?

The only dependency you need is `podman

Then make sure you have downloaded the submodules

git submodule update --init --recursive

and run the distribute script

./distribute.sh

That will use a podman container to build the entire app and it will put the output in ./dist.

Development

Below are all the dependencies this app needs. but you can also look at ./resources/Containerfile to see how to install all the dependencies

Deps:

git submodule update --init --recursive
``

### Version map
These are the versions of the tools used to build and run the project:
- Bun 1.2.21
- Taskfile v3.44.1
- Meson 1.9.0
- pkg-cofig 1.8.1
- gcc 13.3.0
- cmake 3.28.3
- see third_party/Readme.md for the versions of the bundled dependencies




# Running and building

This project uses [task](https://taskfile.dev/) to manage tasks,
almost everything you can do development-wise is a task.
Use
```sh
task --list

to see a list of all tasks with descriptions.

Most useful tasks

run

Just run task run or even just task to build and run the project. Use -- to pass arguments to the program, like ./term.everything firefox would be:

task -- firefox

hide-show

There are a lot of build setup and other files cluttering the root directory. Use the task

task hide-etc

to hide all files except source code. This works for .vscode only.

Likewise use the following to show all the files:

task show-etc

commit

I would appreciate it if you would hide everything before committing. task commit will do this for you.

task commit

clean-all

Remove all build artifacts.

task clean-all

make-source/remove-source

Good helper functions for writing cpp code, does a lot of boilerplate for you.

publish-local

Creates the AppImage, good for local testing or sending to friends

distribute

Creates an AppImage in a Ubuntu 22.04 podman container. AppImages mostly forward-compatible, but are not back-wards compatible, so make them in this container for compatibility.

Code Map

Entry point is ./src/index.ts, all typescript code goes in src. All c++ code goes in ./c_interop/src