Skip to content

Remove dependency on unix libraries #44

@ansiwen

Description

@ansiwen

First: thanks for maintaining this library!

I'm using this library in an embedded/unikernel context (MirageOS/Solo5), and the new version does not compile in the cross-compiler environment:

make build               
dune build --profile release --root . ./dist
File "duniverse/dune_/otherlibs/configurator/src/dune", line 7, characters 12-16:
7 |  (libraries unix csexp)
                ^^^^
Error: Library "unix" in /home/opam/.opam/4.14/solo5-sysroot/lib/ocaml is
hidden (unsatisfied 'exists_if').
-> required by library "dune-configurator" in
   _build/solo5/duniverse/dune_/otherlibs/configurator/src
-> required by executable discover in duniverse/jst-config/discover/dune:1
-> required by _build/solo5/duniverse/jst-config/discover/discover.exe
-> required by _build/solo5/duniverse/jst-config/src/config.h
-> required by _build/install/solo5/lib/jst-config/config.h
-> required by %{lib:jst-config:config.h} at duniverse/time_now/src/dune:7
-> required by _build/solo5/duniverse/time_now/src/config.h
-> required by _build/solo5/manifest.o
-> required by _build/solo5/main.exe
-> required by _build/solo5/keyfender.muen
-> required by _build/solo5/dist/keyfender.muen
-> required by alias dist/all (context solo5)
-> required by alias dist/default (context solo5)
make: *** [Makefile:59: build] Error 1              

The problem seems to be the ppx_expect and ppx_inline_test dependencies, that unconditionally pull in unix dependencies, which are not available in this scenario. Is it possible to remove this dependency for the release profile, that is when tests are not compiled? I would expect that the PPX have a kind of "no-op-mode" for this case?

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions