[ismrmrd] 129/281: Improvments to the java bindings. Now builds the jaxb stuff for the xmlheader. Creates a javadoc. Still working on the automatic loader for simplified matlab use. Still no Append methods.

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Wed Jan 14 20:01:05 UTC 2015


This is an automated email from the git hooks/post-receive script.

ghisvail-guest pushed a commit to annotated tag ismrmrd0.5
in repository ismrmrd.

commit 5e1fe48b3c01c35c8e54641ee9533d3df7db9f57
Author: Souheil Inati <souheil.inati at nih.gov>
Date:   Thu Apr 4 11:59:19 2013 -0400

    Improvments to the java bindings.  Now builds the jaxb stuff for the xmlheader.  Creates a javadoc.
    Still working on the automatic loader for simplified matlab use.  Still no Append methods.
---
 bindings/java/CMakeLists.txt    | 16 +++++++++++-----
 bindings/java/JNILibLoader.java | 15 +++++++++++++++
 bindings/java/make_jar.sh       | 15 +++++++++++++--
 3 files changed, 39 insertions(+), 7 deletions(-)

diff --git a/bindings/java/CMakeLists.txt b/bindings/java/CMakeLists.txt
index d2a2c48..9f22864 100644
--- a/bindings/java/CMakeLists.txt
+++ b/bindings/java/CMakeLists.txt
@@ -7,18 +7,24 @@ include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
 include_directories(${JAVA_INCLUDE_DIRS})
 include_directories(${HDF5_INCLUDE_DIR} ${HDF5_INCLUDE_DIR}/cpp ${Boost_INCLUDE_DIR})
 
-set_source_files_properties(ismrmrd_java.i PROPERTIES CPLUSPLUS ON)
+set(CMAKE_SWIG_FLAGS -package org.ismrm.ismrmrd)
+set(CMAKE_SWIG_OUTDIR ${CMAKE_CURRENT_BINARY_DIR}/org/ismrm/ismrmrd)
 
-SWIG_ADD_MODULE(jismrmrd java ismrmrd_java.i ../../ismrmrd_hdf5.cpp)
-SWIG_LINK_LIBRARIES(jismrmrd ${HDF5_LIBRARIES} ${Boost_LIBRARIES} ${JAVA_LIBRARIES})
+set(SWIG_SOURCES ismrmrd_java.i ../../ismrmrd_hdf5.cpp)
+set_source_files_properties(${SWIG_SOURCES} PROPERTIES CPLUSPLUS ON)
+swig_add_module(jismrmrd java ${SWIG_SOURCES})
+swig_link_libraries(jismrmrd ${HDF5_LIBRARIES} ${Boost_LIBRARIES} ${JAVA_LIBRARIES})
 
+## TODO: this will NOT work on Windows
 set_source_files_properties(ismrmrd.jar PROPERTIES GENERATED true)
 add_custom_command(
     TARGET jismrmrd
     POST_BUILD
-    COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/make_jar.sh
-    COMMENT "Generating java class files and ismrmrd.jar" VERBATIM
     WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+    COMMENT "Compiling java files and creating jar" VERBATIM
+    COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/JNILibLoader.java	
+               ${CMAKE_CURRENT_BINARY_DIR}/org/ismrm/ismrmrd
+    COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/make_jar.sh
 )
 
 install(TARGETS jismrmrd DESTINATION lib)
diff --git a/bindings/java/JNILibLoader.java b/bindings/java/JNILibLoader.java
new file mode 100644
index 0000000..e7add9e
--- /dev/null
+++ b/bindings/java/JNILibLoader.java
@@ -0,0 +1,15 @@
+package org.ismrm.ismrmrd;
+
+public class JNILibLoader {
+    public static void load() throws java.net.URISyntaxException {
+        ClassLoader loader = JNILibLoader.class.getClassLoader();
+        System.out.println(loader.getResource("org/ismrm/ismrmrd/JNILibLoader.class").toURI().getPath());
+	//System.load(JNIFile);
+	//System.load("/usr/local/ismrmrd/lib/libjismrmrd.jnilib");
+	//System.loadLibrary("jismrmrd");
+    }
+}
+
+
+
+
diff --git a/bindings/java/make_jar.sh b/bindings/java/make_jar.sh
index 6551470..2f5fe85 100755
--- a/bindings/java/make_jar.sh
+++ b/bindings/java/make_jar.sh
@@ -1,2 +1,13 @@
-javac *.java
-jar -cvf ismrmrd.jar *.class
+## The loader and the wrapper classes
+javac org/ismrm/ismrmrd/*.java
+
+## The XML Header classes
+# Make a class out of the schema
+xjc -p org.ismrm.ismrmrd.xmlhdr ../../../schema/ismrmrd.xsd
+javac org/ismrm/ismrmrd/xmlhdr/*.java
+
+# Build a big jar
+jar -cvf ismrmrd.jar org/ismrm/ismrmrd/*.class org/ismrm/ismrmrd/xmlhdr/*.class
+
+# Build the java docs
+javadoc -d ismrmrd.javadoc -subpackages org.ismrm.ismrmrd
\ No newline at end of file

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/ismrmrd.git



More information about the debian-science-commits mailing list