5147de90b8
Go 1.10 improved the way of passing strings between C and Go with https://go-review.googlesource.com/c/go/+/70890 This change adapts API/helpers to a new convention, without changing existing API surface and without benefiting from a new way of passing strings. Another, perferable on my readind of `go doc cgo`, but more invasive approach would be to change ALL enry C API to always return *C.char \w C.CString() Signed-off-by: Alexander Bezzubov <bzz@apache.org> |
||
---|---|---|
.. | ||
project | ||
src | ||
.gitignore | ||
build.sbt | ||
key.asc.enc | ||
Makefile | ||
README.md | ||
sbt |
enry-java
Usage
enry-java
package is available thorugh maven central,
so it be used easily added as a dependency in various package management systems.
Examples of how to handle it for most commons systems are included below,
for other systems just look at maven central's dependency information.
Apache Maven
<dependency>
<groupId>tech.sourced</groupId>
<artifactId>enry-java</artifactId>
<version>${enry_version}</version>
</dependency>
Scala SBT
libraryDependencies += "tech.sourced" % "enry-java" % enryVersion
Build
Requirements
sbt
Java
(tested with Java 1.8)wget
Go
(only for building the shared objects for your operating system)
Generate jar with Java bindings and shared libraries
You need to do this before exporting the jar and/or testing.
make
This will download JNAerator jar to generate the code from the libenry.h
header file, it will be placed under lib
.
The shared libraries for your operating system will be built if needed and copied inside the shared
directory.
For IntelliJ and other IDEs remember to mark shared
folder as sources and add lib/enry.jar
as library. If you use sbt
from the command line directly that's already taken care of.
Run tests
make test
Export jar
make package
Will build fatJar under ./target/enry-java-assembly-X.X.X.jar
.
One can use ./sbt publish-local
to install enry-java dependency on local machine.