Package: vtk
Version: 5.8.0-15
Severity: important
Tags: patch

the tcl libraries are not properly linked which leads to undefined
references when trying to use them from tclsh:
% package require vtk
couldn't load file "/usr//lib//libvtkRenderingTCL.so":
/usr//lib//libvtkRenderingTCL.so: undefined symbol:
_Z23vtkTclVoidFuncArgDeletePv

attached a very hacky patch, ugly but it works, a person more familiar
with cmake usage of vtk should probably clean it up.
Description: add missing tcl library links 
 hackishly fix underlinking of tcl libraries
 $ tcsh
 package require vtk
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/vtk/+bug/904469
--- a/CMake/KitCommonTclWrapBlock.cmake
+++ b/CMake/KitCommonTclWrapBlock.cmake
@@ -3,7 +3,26 @@ VTK_WRAP_TCL3(vtk${KIT}TCL KitTCL_SRCS
   "${Kit_TCL_EXTRA_CMDS}")
 VTK_ADD_LIBRARY(vtk${KIT}TCL ${KitTCL_SRCS} ${Kit_TCL_EXTRA_SRCS})
 SET(KIT_LIBRARY_TARGETS ${KIT_LIBRARY_TARGETS} vtk${KIT}TCL)
-TARGET_LINK_LIBRARIES (vtk${KIT}TCL vtk${KIT} ${KIT_TCL_LIBS})
+
+IF("vtk${KIT}TCL" STREQUAL "vtkCommonTCL")
+    TARGET_LINK_LIBRARIES (vtk${KIT}TCL vtk${KIT} ${KIT_TCL_LIBS})
+ELSEIF("vtk${KIT}TCL" STREQUAL "vtkHybridTCL")
+    TARGET_LINK_LIBRARIES (vtk${KIT}TCL vtk${KIT} ${KIT_TCL_LIBS} vtkImagingTCL)
+ELSEIF("vtk${KIT}TCL" STREQUAL "vtkParallelTCL")
+    TARGET_LINK_LIBRARIES (vtk${KIT}TCL vtk${KIT} ${KIT_TCL_LIBS} vtkGraphicsTCL vtkImagingTCL)
+ELSEIF("vtk${KIT}TCL" STREQUAL "vtkGeovisTCL")
+    TARGET_LINK_LIBRARIES (vtk${KIT}TCL vtk${KIT} ${KIT_TCL_LIBS} vtkInfovisTCL)
+ELSEIF("vtk${KIT}TCL" STREQUAL "vtkViewsTCL")
+    TARGET_LINK_LIBRARIES (vtk${KIT}TCL vtk${KIT} ${KIT_TCL_LIBS} vtkRenderingTCL)
+ELSEIF("vtk${KIT}TCL" STREQUAL "vtkChartsTCL")
+    TARGET_LINK_LIBRARIES (vtk${KIT}TCL vtk${KIT} ${KIT_TCL_LIBS} vtkRenderingTCL)
+ELSEIF("vtk${KIT}TCL" STREQUAL "vtkViewsTCL")
+    TARGET_LINK_LIBRARIES (vtk${KIT}TCL vtk${KIT} ${KIT_TCL_LIBS} vtkRenderingTCL)
+ELSEIF("vtk${KIT}TCL" STREQUAL "vtkInfovisTCL")
+    TARGET_LINK_LIBRARIES (vtk${KIT}TCL vtk${KIT} ${KIT_TCL_LIBS} vtkIOTCL)
+ELSE()
+    TARGET_LINK_LIBRARIES (vtk${KIT}TCL vtk${KIT} ${KIT_TCL_LIBS} vtkFilteringTCL)
+ENDIF()
 
 
   set_target_properties(vtk${KIT}TCL

Reply via email to