[vtkusers] Compiling VTK on OSX with .jnilib extensions

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


Thank you, it seems to work.
My compilation has restarted... I will know in around an hour if my jnilib compilation works :-)
Ben

Le 27 oct. 2010 à 16:34, Michael Jackson a écrit :

> If you have applied Apple's latest java update there seems to be a problem with a symlink to the jni.h header. There are a few recent posts (as recent as yesterday) on this list with the solution. Maybe that will help you.
> 
> Here is the quote from that email:
> ----- david.gobbi at gmail.com Said........
> Ah, reading what you said about symlinks in your email, I realized
> that if people just copy files between the two directories that I
> mentioned in my email, they will copy over the symlinks instead of
> copying to the directory that the symlinks point to.  To be clear,
> what people should do is copy
> 
> /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Headers/*
> 
> to
> 
> /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Headers/
> 
> or just change CMakeCache.txt to use the SDK's include directory.
> 
> - David
> 
> ___________________________________________________________
> Mike Jackson                      www.bluequartz.net
> 
> 
> On Oct 27, 2010, at 10:28 AM, Thiébault Benoît wrote:
> 
>> 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
>>> 
>> 
>> _______________________________________________
>> 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