[leiningen] Re: Help packaging jni shared-objects in uberjar

  • From: Daniel Compton <daniel.compton.lists@xxxxxxxxx>
  • To: leiningen@xxxxxxxxxxxxx
  • Date: Wed, 27 Sep 2017 00:45:20 +0000

Hi Shlomi

When you say "Everything works locally", can you elaborate on this? Do you
mean when running a lein repl things work or something else?

I tried to follow almost everything I could find online regarding this,
but could not make it happen with lein.

What do you mean by this? What went wrong?

Not sure if you've seen https://github.com/jnr/jnr-ffi/issues/93 but it
might have some helpful links? Also Neanderthal and co. use native
libraries so may be useful (not sure as I haven't looked).

On Wed, Sep 27, 2017 at 1:01 PM Shlomi Vaknin <shlomivaknin@xxxxxxxxx>
wrote:

Hi all,

I am making an internal clojure library that wraps some cpp library.
Everything works locally, and I have the folder structure
"project/native/linux/x86_64/". Inside I have all the .so files that the
library needs.

I would like to package this and have it accessible just as a "maven"
artifact. My hope is that potential users could simply add the dependency
to their project.clj or pom files and have everything working (maybe even
without setting LD_LIBRARY_PATH manually)

I tried to follow almost everything I could find online regarding this,
but could not make it happen with lein. I could divide this project into a
"jni/maven" (maybe using something like that
<http://www.mojohaus.org/maven-native/native-maven-plugin/usage.html>)
and then have that as a dependency of my clj-library, but that seems a
little cumbersome.

Any tips on how to do that directly through lein?

Thanks,
Shlomi

Other related posts: