In the previous post we built the project using dune
only. Check it out here.
To recap, I am trying to use the aantron/luv library to try to build something and I ran into all kinds of build system issues mostly because I still haven't grokked the reason-native build system yet. That's ok. This note is my way of getting better and having a reference I understand when I need to come back to it and giving back to the generous community. The reason-native
build environment has a list of great tools you can use. Most prominent among them are Dune
, Esy/Pesy
and Spin
. Here we are using Pesy
.
Getting Started
First make sure you have esy
and pesy
installed and updated.
npm i -g esy
npm i -g pesy
Then create a directory, cd
into it, then run pesy
and follow the prompts.
mkdir pesy-with-luv && cd pesy-with-luv
Contains the following libraries and executables:
pesy-with-luv@0.0.0
│
├─test/
│ name: TestPesyWithLuv.exe
│ main: TestPesyWithLuv
│ require: pesy-with-luv.lib
│
├─library/
│ library name: pesy-with-luv.lib
│ namespace: PesyWithLuv
│ require:
│
└─executable/
name: PesyWithLuvApp.exe
main: PesyWithLuvApp
require: pesy-with-luv.lib
Build The Project:
esy install
esy build
Running It:
After building the project, you can run the main binary that is produced.
esy x PesyWithLuvApp.exe
Adding the Luv library
Let's install luv
.
Run esy add @opam/luv
Then go to package.json
and add "require": ["luv"]
to the library
key.
"library": {
"name": "pesy-with-luv.lib",
"namespace": "PesyWithLuv",
add this-> "require": [
"luv"
]
},
Run esy pesy
to rebuild.
Note that your dune
file in library/dune
has changed to reflect the added luv
library.
This is great if you not comfortable with dune
files yet.
Now you can call PesyWithLuv.Demo.luv();
in executable/PesyWithLuvApp.re
;
Run esy x PesyWithLuvApp.exe
then watch the output.
Running Binary:
After building the project, you can run the main binary that is produced.
esy x PesyWithLuvApp.exe
~/Github/pesy-with-luv
❯ esy x PesyWithLuvApp.exe
pesy-with-luv@0.0.0
Build Succeeded! To test a binary:
esy x PesyWithLuvApp.exe
Hello
33%
66%
Done
Conclusion
Not bad at all. Need a more robust build and a built in pipeline for sharing your project, Pesy
is a good choice. Source can be found here
Next we will try with Spin
.
Top comments (0)