I was working on a project that requires loading of native libraries, and so far, all development was restricted to Linux. In order to run
my project, I could simply enable forking and modify java.library.path
as follows:
javaOptions in run += "-Djava.library.path=some/common/path:lib/native/linux"
My question is: How can I do the same in a cross-platform way, so that I can share my build.sbt with a Windows-based developer. There are in particular three things that I couldn't figure out so far:
- I know that SBT allows to construct platform-independent paths like
"dir1" / "dir2"
, but I'm not aware of a cross-platform way to join multiple paths (since it is:
on Linux and;
on Windows). - Is it possible to append either
lib/native/linux
orlib/native/windows
dependent on the platform? - My approach above overwrites
java.library.path
-- is it possible to append instead?
/
syntax though, since there is no implicit conversion from String to (I guess) File. But obviously there is always the work-around of doing it manually withseparatorChar
. And for debugging purposes: Any idea whyshow java-options
always just returnsList()
? – Gheber