sbt / sbt-jni

SBT Plugin to ease working with JNI
BSD 3-Clause "New" or "Revised" License
126 stars 28 forks source link

Add support of multiple native outputs #186

Closed pomadchin closed 11 months ago

pomadchin commented 11 months ago

This PR modifies all build tools behavior to put all the possible project outputs into the res artifact.

See https://github.com/sbt/sbt-jni/issues/185#issuecomment-1832150228

Closes https://github.com/sbt/sbt-jni/issues/185

@datben could you check if it works for you?

I'll try it on my repos as well later to ensure that nothing is broken with this change.

pomadchin commented 11 months ago

I tested it on a project https://github.com/datben/jni-test, as the result it puts two binaries into the jar. The behavior looks legit!

datben commented 11 months ago

@pomadchin how can i add this branch in my sbt plugin, i tried this : addSbtPlugin("com.github.sbt" % "sbt-jni" % "1.6.0+40-911e3587-SNAPSHOT" from "https://github.com/sbt/sbt-jni.git#feature/list-files") but it doesnt work (i am not very familiar with sbt plugins)

pomadchin commented 11 months ago

@datben we don't not push to artifactory from branches; the easiest way to test like any scala project: clone, checkout branch, sbt publishLocal => use the published version (bump version up in the plugins.sbt file)

$ git clone git@github.com:sbt/sbt-jni.git; cd sbt-jnil; git checkout feature/list-files
$ sbt publishLocal
# bump plugin version here https://github.com/datben/jni-test/blob/master/project/plugins.sbt#L1
datben commented 11 months ago

@pomadchin lIt looks fine on my side, but perhaps you could consider adding a parameter to allow or disallow multiple outputs (defaulting to false) to avoid it being potentially a breaking change

pomadchin commented 11 months ago

@datben makes sense :+1:

Added a new key:

nativeMultipleOutputs := {false | true} // false by default