From: Jonathan S. <jjs...@vc...> - 2007-10-04 13:55:56
|
Dragan and Thomas OK, I finally managed to get octaviz installed on my Mac. It required a few hacks to make files _post cmake_. I detail the issues below so that we can try to resolve them at the cmake step. For the record, I installed octave and VTK via Fink. Are you subscribed to the octaviz-help mailing list? If so, I will not cc you in future emails about this. Thanks, Jonathan Problem 1: A few of the vtk functions will not compile, giving this error: /sw/include/vtk-5.0/vtkStreamTracer.h: In member function 'virtual void vtkStreamTracer::SetIntegrationDirection(int)': /sw/include/vtk-5.0/vtkStreamTracer.h:263: error: 'vtkStreamTracer::<anonymous enum>' is/uses anonymous type /sw/include/vtk-5.0/vtkStreamTracer.h:263: error: trying to instantiate 'template<class T> template<class U> octave_int::octave_int(U)' As a workaround, I added these lines to CMakeLists.txt of the octaviz directory: # below won't build on Mac OS X, JJS 10/2/07 SET(VTK_CLASS_WRAP_EXCLUDE_vtkStreamTracer 1) SET(VTK_CLASS_WRAP_EXCLUDE_vtkTensorGlyph 1) SET(VTK_CLASS_WRAP_EXCLUDE_vtkDEMReader 1) SET(VTK_CLASS_WRAP_EXCLUDE_vtkTIFFWriter 1) SET(VTK_CLASS_WRAP_EXCLUDE_vtkCameraInterpolator 1) SET(VTK_CLASS_WRAP_EXCLUDE_vtkQuaternionInterpolator 1) SET(VTK_CLASS_WRAP_EXCLUDE_vtkTransformInterpolator 1) SET(VTK_CLASS_WRAP_EXCLUDE_vtkProjectedTerrainPath 1) SET(VTK_CLASS_WRAP_EXCLUDE_vtkImagePlaneWidget 1) SET(VTK_CLASS_WRAP_EXCLUDE_vtkDistributedStreamTracer 1) SET(VTK_CLASS_WRAP_EXCLUDE_vtkPStreamTracer 1) I suspect that this might be a compiler problem. I am using Apple Xcode tools 2.4.1 with gcc 4.0. I might try a different gcc eventually, but that may involve rebuilding all kinds of dependencies :( Problem 2: Linking of libraries does not work automatically. As a workaround, I added -L/sw/lib/octave-2.9.14 -loctinterp -loctave -lcruft -lvtkCommon to Common/CMakeFiles/octaviz.dir/link.txt. I notice that the equivalent flags are not included or needed when compiling in Linux. Nonetheless, it shouldn't hurt to add them universally. Can you help me make changes to the appropriate CMakeLists.txt file to add these? Problem 3: For some reason, the location of these files are listed to be (and theire .cc files also) "/sw/src/fink.build/vtk-py25-5.0.2-1003/VTK/Common/vtkTypeInt8Array.oct" "/sw/src/fink.build/vtk-py25-5.0.2-1003/VTK/Common/vtkTypeInt16Array.oct" "/sw/src/fink.build/vtk-py25-5.0.2-1003/VTK/Common/vtkTypeInt32Array.oct" "/sw/src/fink.build/vtk-py25-5.0.2-1003/VTK/Common/vtkTypeInt64Array.oct" "/sw/src/fink.build/vtk-py25-5.0.2-1003/VTK/Common/vtkTypeUInt8Array.oct" "/sw/src/fink.build/vtk-py25-5.0.2-1003/VTK/Common/vtkTypeUInt16Array.oct" "/sw/src/fink.build/vtk-py25-5.0.2-1003/VTK/Common/vtkTypeUInt32Array.oct" "/sw/src/fink.build/vtk-py25-5.0.2-1003/VTK/Common/vtkTypeUInt64Array.oct" "/sw/src/fink.build/vtk-py25-5.0.2-1003/VTK/Common/vtkTypeFloat32Array.oct" "/sw/src/fink.build/vtk-py25-5.0.2-1003/VTK/Common/vtkTypeFloat64Array.oct" As a workaround, I manually edited Common/CMakeFiles/Common.dir/build.make Common/CMakeFiles/Common.dir/cmake_clean.cmake Common/cmake_install.cmake and removed the "/sw/.../VTK/" part of the paths. Any idea how to resolve this? I find this bug (I think it is a bug) a bit strange since all the other VTK translated header files do not have this problem. Problem 4: I needed to add "-lvtkRendering" to the build line for vtkRaiseWindow.cc in Common/CMakeFiles/Common.dir/build.make. Not sure why this isn't needed in Linux, but again it wouldn't hurt to add the flag universally. I'm guessing that this can be done by simply adding the flag to the ADD_CUSTOM_COMMAND for vtkRaiseWindow in Common/CMakeLists.txt. I can try this the next time I compile octaviz. |