[Paraview] Custom External Libraries built with ParaView

Eric Nodwell enodwell at ucalgary.ca
Mon Jun 7 13:15:48 EDT 2010


I'm having some linking issues building our custom external libraries into ParaView.

The background is, we have the following:
1. a custom library (vtkskiIO) , and
2. some ParaView plugins that use classes out of vtkskiIO .

These can be built, loaded and run successfully when they are built not with with ParaView, but against an already-built ParaView source tree.  In this case they are loaded after launching ParaView with the Plugin manager.

We would like now to build them along with ParaView itself, following roughly these instructions: http://paraview.org/Wiki/Extending_ParaView_at_Compile_Time#Build_Code_As_Part_Of_ParaView .  This will make it easier for our users, as we can just distribute ParaView with our extensions built in.

We have a single external module CMake file, "vtkskiPluginsParaViewImport.cmake" which we specify with the CMake variable PARAVIEW_EXTRA_EXTERNAL_MODULE .  It builds our vtkskiIO library, and informs ParaView about it as follows (this seems the most likely command that I found in ParaViewCommon.cmake):

  PARAVIEW_LINK_LIBRARIES(vtkskiIO)

The plugins themselves are then built with PARAVIEW_INCLUDE_WRAPPED_SOURCES, PARAVIEW_INCLUDE_SERVERMANAGER_RESOURCES and PARAVIEW_INCLUDE_GUI_RESOURCES .

The library does build correctly within the ParaView binary directory, however, we then run into this error:

Linking CXX shared library ../../bin/libvtkPVFilters.dylib
Undefined symbols:
  "vtkAIMReader::New()", referenced from:
      vtkSmartPointer<vtkAIMReader>::New()        in vtkAIMReaderPlugin.cxx.o
ld: symbol(s) not found

It appears that we need somehow to specify that vtkPVFilters should link against out libvtkskiIO (without actually going in and modifying any CMake files within ParaView itself).  Apparently, PARAVIEW_LINK_LIBRARIES is not sufficient for this purpose.  Any suggestions?

Eric



More information about the ParaView mailing list