./gradlew build
- Download distributions from release page with a shell script -
src/main/shell/download_distributions.sh
- Copy
helics.jar
to thelibs
folder of the project. The jar file might be copied from macOS, win32, win64 distributions (from java folder) or might be built with docker image together withlibhelicsJava.so
. - Build
libhelicsJava.so
for unix and make surelibhelicsJava.so
is copied tosrc/main/shell
before going to the next step, otherwiseunix.zip
will be incomplete. - Zip all libraries and put them to resources with a shell script -
src/main/shell/pack_archives.sh
- Run helics builder docker image with interactive bash
docker run -v C:\temp\helics:/helics -it helics/helics:helics-builder /bin/bash
<- change mounting folder if needed apt-get update && apt-get install openjdk-8-jdk vim -y
cd /helics && git clone https://github.com/GMLC-TDC/HELICS && cd HELICS && git checkout v3.3.0 && mkdir build && cd build
<- change to your tagvim ../interfaces/java/addLoadLibraryCommand.cmake
Comment out the loading of librarySystem.loadLibrary
on lines https://github.com/GMLC-TDC/HELICS/blob/main/interfaces/java/addLoadLibraryCommand.cmake#L21-L26, we load the library on our own here https://github.com/LBNL-UCB-STI/helics-wrapper/blob/master/src/main/java/com.github.beam/HelicsLoader.java#L26-L37cmake -DHELICS_BUILD_JAVA_INTERFACE=ON .. && make -j8
- Copy
libhelicsJava.so
(lib/libhelicsJava.so) tosrc/main/shell
andhelics.jar
(interfaces/java/jarproject/buildjar/helics.jar) tolibs