Andre,
thanks, I think I finally found a potentially productive path for a resolution to this issue. The vtk CMAKE directory has two cmake "macros" (KitCommonBlock.cmake and KitCommonJavaBlock.cmake) in KitCommonBlock.cmake the ADD_LIBRARY I added:

IF (WIN32)
SET_TARGET_PROPERTIES (vtk${KIT} PROPERTIES PREFIX "" )
ENDIF (WIN32)

and in KitCommonJava.cmake after the ADD LIBRARY I added:

IF (WIN32)
SET_TARGET_PROPERTIES (vtk${KIT}Java PROPERTIES PREFIX "" )
ENDIF (WIN32)

This has the outputs created so that the delivered java samples at least get past the load of the JNI libraries.

What I am seeing now is a failure in VTKObject at the line:

    this.vtkId = this.VTKInit();
in the VTKObject constructor.

The trace back when running the CONE.JAVA example is:
vtk libraries loaded
Exception in thread "main" java.lang.UnsatisfiedLinkError: vtk.vtkConeSource.VTKInit()J
   at vtk.vtkConeSource.VTKInit(Native Method)
   at vtk.vtkObject.<init>(vtkObject.java:96)
   at vtk.vtkAlgorithm.<init>(vtkAlgorithm.java:765)
   at vtk.vtkPolyDataAlgorithm.<init>(vtkPolyDataAlgorithm.java:163)
   at vtk.vtkConeSource.<init>(vtkConeSource.java:114)
   at Cone.main(Cone.java:35)

Based on this revelation, I am going to say CMAKE does not have a bug as originally reported in 10969. but there still may be some interface requirement to resolve for use of the java wrappers in a Windows JVM.

Does anyone know if the vtkObject.cxx is supposed to implement a VTKInit function? if not, where exactly is that supposed to be from?

Thanks for the patience and information you folks have provided.
Jim Peterson

André Prins wrote:
Hi All,

Allow me to chime in a little on the use of Vtk libs with MinGW. I
also reported a python-wrapping and installation issue a few days ago
as a response to the mail from Jim.

What is the primary user of a mingw compiler system trying to achieve?

Somebody trying to build unix-y stuff for Windows?
Or somebody trying to build unix-y stuff to still be unix-y in an MSYS shell
environment?

The most important reason for me is that I can test my source-code for
compatibility with the Gcc compiler, without having to setup a Linux
machine or a full cygwin environment. Second, I used gcc a lot (in
Unix/Linux), but am stuck with a windows-environment nowadays. It is
simply faster for me to set up a small test-application with a
makefile (or CMakeLists.txt) then to open up a new visual studio
project. Starting visual studio is slow on an Asus EEE Netbook.

Personally, I would say: get rid of the lib-prefix in MinGW...
    1) It implies a consistent dll and pyd name on windows, which is good.
    2) It probably solves the install errors with MinGW and python-wrapping.

This is something which can be done with CMake and is what I do when I
want my own vtk-library wrapped with python. E.g., I have a "Readers"
library, which does the following in CMake:

    add_library( ReadersPython SHARED ${ReadersPython_SRCS} )
    # Ensure the lib-prefix is gone and the library ends with .pyd
    set_target_properties( ReadersPython PROPERTIES PREFIX "" )
    set_target_properties( ReadersPython PROPERTIES SUFFIX ".pyd" )

I have not encountered any problems with this approach. I guess this
is similar to setting a "system-wide" CMAKE_SHARED_LIBRARY_PREFIX?

Regards,
Andre


_______________________________________________
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 CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to