[vtkusers] Compiling VTK on OSX with .jnilib extensions

Thiébault Benoît dev at artenum.com
Wed Oct 27 10:28:35 EDT 2010


Hi everyone,

It seems nobody has a solution for this problem... Here is a more detailed explanation of the issues I face in creating an OSGi bundle for VTK under OSX: http://dev.artenum.com/blog/ben/posts/osgi_vtk_and_macosx

I am sure that this would be very useful to many users, as it would allow them to develop Eclipse RCP applications using VTK.

I tried to do change the dylib extension to jnilib extensions myself, but I barely know CMake and I am sure there is a simpler way (that works...) to do it.

What I have done so far is first to identify what files in the build directory are referring to .dylib files. For this, I used the command:
grep -r -H ".dylib" .|awk -F':' '{print $1}'|sort|uniq|grep -v "^Binary"

The first file, CMakeCache.txt indicates path to system libraries, so I excluded it from the list.
I then replaced all .dylib occurrences by .jnilib extension. Yeah, I know, that's very brutal... if only it could have worked :-)
The compilation fails at 8%:
In file included from /Users/ben/Downloads/vtk-5.6.1/buildJnilib/Common/vtkAbstractArrayJava.cxx:7:
/Users/ben/Downloads/vtk-5.6.1/Common/vtkJavaUtil.h:20:17: error: jni.h: No such file or directory
In file included from /Users/ben/Downloads/vtk-5.6.1/buildJnilib/Common/vtkAbstractArrayJava.cxx:7:
/Users/ben/Downloads/vtk-5.6.1/Common/vtkJavaUtil.h:24: error: ‘JNIEXPORT’ does not name a type
/Users/ben/Downloads/vtk-5.6.1/Common/vtkJavaUtil.h:26: error: expected initializer before ‘void’
/Users/ben/Downloads/vtk-5.6.1/Common/vtkJavaUtil.h:27: error: expected initializer before ‘char’
/Users/ben/Downloads/vtk-5.6.1/Common/vtkJavaUtil.h:28: error: ‘JNIEXPORT’ does not name a type
/Users/ben/Downloads/vtk-5.6.1/Common/vtkJavaUtil.h:30: error: ‘JNIEXPORT’ does not name a type
/Users/ben/Downloads/vtk-5.6.1/Common/vtkJavaUtil.h:32: error: ‘JNIEXPORT’ does not name a type
...

Can somebody help?

Thank you
Ben


Le 19 oct. 2010 à 10:25, Thiébault Benoît a écrit :

> Hi everyone,
> 
> I'm trying to embed VTK in an OSGi bundle. I already successfully created a bundle that supports Linux and I am now concentrating on MacOSX.
> It seems OSGi cannot deal with .dylib libraries and thus I would like to compile VTK with CMake creating .jnilib extensions.
> Renaming the libraries is not sufficient, as their dependencies are stored with respect to the .dylib file.
> 
> For instance: 
>> otool -L libvtkCommonJava.jnilib
> libvtkCommonJava.jnilib:
> 	libvtkCommonJava.5.6.dylib (compatibility version 5.6.0, current version 5.6.1)
> 	libvtkCommon.5.6.dylib (compatibility version 5.6.0, current version 5.6.1)
> 	libvtksys.5.6.dylib (compatibility version 5.6.0, current version 5.6.1)
> 	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.0)
> 	/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0)
> 
> Can anyone point me what to do in CMake files to modify the library extensions?
> 
> Kind regards,
> 
> Ben
> _______________________________________________
> Powered by www.kitware.com
> 
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
> 
> Please keep messages on-topic and check the VTK FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
> 
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
> 




More information about the vtkusers mailing list