mirror of
https://github.com/vishapoberon/vix.git
synced 2026-04-05 20:32:24 +00:00
vix 0.1.1
- improve vipakfile - reuse code for build, test and release - add release subcommand - add clean subcommand - improve portability - better skeleton
This commit is contained in:
parent
6f90eab38f
commit
88b36af849
2 changed files with 246 additions and 65 deletions
75
README.md
Normal file
75
README.md
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
# vix
|
||||
|
||||
Vix is a simple, POSIX-shell-based project and build manager for [Vishap Oberon](https://vishap.oberon.am) projects.
|
||||
It provides commands to create a new project skeleton, compile library modules, link and run your program, run tests, and produce release binaries.
|
||||
|
||||
## vix in action
|
||||
|
||||
[](https://asciinema.org/a/723640)
|
||||
|
||||
## Installation
|
||||
|
||||
1. clone this repository
|
||||
2. `sudo cp vix /usr/local/bin/vix`
|
||||
|
||||
## Usage
|
||||
|
||||
```
|
||||
Usage: vix ...
|
||||
help
|
||||
version
|
||||
new PATH [--module MODULE] [--app APP]
|
||||
run
|
||||
build
|
||||
test
|
||||
release
|
||||
```
|
||||
|
||||
```
|
||||
vix new hello_world
|
||||
```
|
||||
|
||||
## Directory Layout
|
||||
|
||||
```
|
||||
hello_world/
|
||||
src/
|
||||
HelloWorld.Mod ← library API
|
||||
HelloWorldMain.Mod ← "main" program entry
|
||||
test/
|
||||
HelloWorldTest.Mod ← test suite
|
||||
vipakfile ← project manifest
|
||||
README.md
|
||||
.gitignore
|
||||
.gitattributes
|
||||
```
|
||||
|
||||
## vipakfile format
|
||||
|
||||
```
|
||||
NAME = hello_world
|
||||
VERSION = 0.1.0
|
||||
|
||||
AUTHOR =
|
||||
LICENSE =
|
||||
|
||||
DEPS =
|
||||
|
||||
RUN = ./HelloWorldMain
|
||||
MAIN = %projdir%/src/HelloWorldMain.Mod
|
||||
BUILD = %projdir%/src/HelloWorld.Mod
|
||||
|
||||
TEST_RUN = ./HelloWorldTest
|
||||
TEST_MAIN = %projdir%/test/HelloWorldTest.Mod
|
||||
TEST =
|
||||
```
|
||||
|
||||
- `%projdir%` is replaced at runtime with the project root directory.
|
||||
- Semicolons (`;`) separate multiple entries, preserving order.
|
||||
|
||||
## TODO
|
||||
|
||||
- Integrate `vix` with `vipak` for dependency management
|
||||
- Incremental builds
|
||||
- Release tarballs, Dockerfiles and Jailerfiles
|
||||
- Rewrite vix in Oberon
|
||||
Loading…
Add table
Add a link
Reference in a new issue