non-OTP app deps in mix.exs

Hi,

I’m trying to make use of ex11 as a dependency in a Mix project ( https://github.com/skvamme/ex11 ). It seems that ex11 is not following OTP conventions. It’s just a bunch of Erlang functions in some Erlang modules. Mix rightfully says that there’s no .app file in that repo and cannot continue.

Can I still include such a library into a Mix project somehow?

S.

Im not in a position to offer an authoritative answer, but I suspect git submodule add would be one way to include a non-OTP non-Mix dependency.

Only way I see is to write a compiler module that does manage this dependency and pull it’s beam files into the proper path.

Alternatively, of course you are free to open a ticket to convert that lob to a rebar3 compliant build and move it to hex.

A solution of last resort is to fork and rebarify yourself. Of course you need to check licence first then.

You can add app: false to the dependency definition in mix.exs like so: {:ex11, ..., app: false}.

3 Likes