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)