[vtkusers] Migration to VTK6

Arno Klein binarybottle at gmail.com
Fri Dec 11 01:46:30 EST 2015


I built VTK 6 through the Anaconda Python distribution ("conda install vtk"
installed 6.3).

I placed the three lines you recommended in the top-level CMakeLists.txt
file in my library:
SET(CMAKE_OSX_DEPLOYMENT_TARGET "10.11")
SET(CMAKE_OSX_ARCHITECTURES "x86_64")
SET(CMAKE_OSX_SYSROOT "macosx10.11")

This enabled the make command to compile farther than I have been able to
get so far.  However, it requires someone to explicitly specify which
version of MacOSX, which I was hoping to avoid.  Previously, I was using:

#https://forums.developer.apple.com/thread/17334
SET(CMAKE_OSX_DEPLOYMENT_TARGET "")
SET(CMAKE_OSX_SYSROOT /)

or:

# https://cmake.org/Bug/view.php?id=14695
SET(MACOSX_DEPLOYMENT_TARGET
${DARWIN_MAJOR_SDK_VERSION}.${DARWIN_MINOR_SDK_VERSION})
SET(CMAKE_CXX_FLAGS "--sysroot ${CMAKE_OSX_SYSROOT} ${CMAKE_CXX_FLAGS}")



Cheers,
@rno

On Thu, Dec 10, 2015 at 10:14 PM, David Gobbi <david.gobbi at gmail.com> wrote:

> Actually I might have misunderstood your issue.  Did you build VTK 6
> yourself, or did you download a binary package?  In either case, the three
> cmake variables that I mentioned above should be set the same in your own
> project as they are in the VTK that you are building against.
>
> On Thu, Dec 10, 2015 at 11:00 PM, David Gobbi <david.gobbi at gmail.com>
> wrote:
>
>> You can try setting the SDK info in the CMakeCache.txt:
>>
>> CMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.11
>> CMAKE_OSX_ARCHITECTURES:STRING=x86_64
>> CMAKE_OSX_SYSROOT:STRING=macosx10.11
>>
>> I recommend deleting your entire build directory, creating a new
>> CMakeCache.txt that has only these three lines, and then re-running cmake.
>>
>>  - David
>>
>>
>> On Thu, Dec 10, 2015 at 10:49 PM, Arno Klein <binarybottle at gmail.com>
>> wrote:
>>
>>> 'gcc tmp.cpp' created an 'a.out' file, and I have been able to compile
>>> other things, so I guess my Xcode installation is fine.  What do you
>>> recommend I try next?
>>>
>>> Cheers,
>>> @rno
>>>
>>> On Thu, Dec 10, 2015 at 7:52 PM, David Gobbi <david.gobbi at gmail.com>
>>> wrote:
>>>
>>>> The header unistd.h is posix standard and comes with every Xcode SDK.
>>>> Try compiling the following trivial program.  If it doesn't compile, then
>>>> there must be something awry with your Xcode installation:
>>>>
>>>> #include <unistd.h>
>>>> int main()
>>>> {
>>>>   return 0;
>>>> }
>>>>
>>>>  - David
>>>>
>>>> On Thu, Dec 10, 2015 at 7:39 PM, Arno Klein <binarybottle at gmail.com>
>>>> wrote:
>>>>
>>>>> Thank you for your help!
>>>>>
>>>>> I am now able to compile with cmake on linux, but get the following
>>>>> error on macosx 10.11, even though there is no "unistd.h" anywhere in my
>>>>> github repo (https://github.com/nipy/mindboggle/issues/69):
>>>>>
>>>>> Scanning dependencies of target FsSurfaceReader
>>>>> [ 3%] Building CXX object
>>>>> CMakeFiles/FsSurfaceReader.dir/FsSurfaceReader.cpp.o
>>>>> In file included from
>>>>> /software/mindboggle/surface_cpp_tools/FsSurfaceReader.cpp:13:
>>>>> In file included from
>>>>> /software/mindboggle/surface_cpp_tools/FsSurfaceReader.h:16:
>>>>> In file included from /usr/local/include/vtk-6.0/vtkPolyData.h:58:
>>>>> In file included from /usr/local/include/vtk-6.0/vtkPointSet.h:30:
>>>>> In file included from /usr/local/include/vtk-6.0/vtkDataSet.h:41:
>>>>> In file included from /usr/local/include/vtk-6.0/vtkDataObject.h:36:
>>>>> In file included from /usr/local/include/vtk-6.0/vtkObject.h:42:
>>>>> In file included from /usr/local/include/vtk-6.0/vtkObjectBase.h:44:
>>>>> In file included from /usr/local/include/vtk-6.0/vtkIndent.h:25:
>>>>> In file included from
>>>>> /usr/local/include/vtk-6.0/vtkSystemIncludes.h:36:
>>>>> In file included from /usr/local/include/vtk-6.0/vtkIOStream.h:33:
>>>>> In file included from
>>>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iostream:37:
>>>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/__config:23:10:
>>>>> fatal error:
>>>>> 'unistd.h' file not found
>>>>> #include
>>>>> ^
>>>>> 1 error generated.
>>>>> make[2]: *** [CMakeFiles/FsSurfaceReader.dir/FsSurfaceReader.cpp.o]
>>>>> Error 1
>>>>> make[1]: *** [CMakeFiles/FsSurfaceReader.dir/all] Error 2
>>>>> make: *** [all] Error 2
>>>>>
>>>>> Cheers,
>>>>> @rno
>>>>>
>>>>> On Thu, Dec 3, 2015 at 6:25 AM, David E DeMarle <
>>>>> dave.demarle at kitware.com> wrote:
>>>>>
>>>>>> I agree with Cory on Update() being redundant before the Write().
>>>>>>
>>>>>> >    vtkDataObject* dobj = someAlgorithm->GetOutput(1);
>>>>>> >    dobj->Update();
>>>>>>
>>>>>> should become:
>>>>>>
>>>>>>   someAlgorithm->Update(1); //to make sure there is something valid
>>>>>>   vtkDataObject* dobj = someAlgorithm->GetOutput(1); //keep the
>>>>>> output for later use
>>>>>>
>>>>>> Because since vtk6, dobj no longer has any connection to the
>>>>>> algorithm, so updating it (which used to update the algorithm for you) no
>>>>>> longer has any meaning.
>>>>>>
>>>>>>
>>>>>>
>>>>>> David E DeMarle
>>>>>> Kitware, Inc.
>>>>>> R&D Engineer
>>>>>> 21 Corporate Drive
>>>>>> Clifton Park, NY 12065-8662
>>>>>> Phone: 518-881-4909
>>>>>>
>>>>>> On Thu, Dec 3, 2015 at 9:09 AM, Cory Quammen <
>>>>>> cory.quammen at kitware.com> wrote:
>>>>>>
>>>>>>> Arno,
>>>>>>>
>>>>>>> That pattern should be valid in VTK6. Are you getting compile errors?
>>>>>>>
>>>>>>> I believe the Update() and Write() calls to the writer are redundant
>>>>>>> - you should need only one.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Cory
>>>>>>>
>>>>>>> On Wed, Dec 2, 2015 at 5:56 PM, Arno Klein <binarybottle at gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> I am trying to update my code to migrate to VTK6 according to:
>>>>>>>>
>>>>>>>> http://www.vtk.org/Wiki/VTK/VTK_6_Migration/Removal_of_Update
>>>>>>>>
>>>>>>>> According to the examples on that site, I understand that:
>>>>>>>>
>>>>>>>>     vtkDataObject* dobj = someAlgorithm->GetOutput(1);
>>>>>>>>     dobj->Update();
>>>>>>>>
>>>>>>>> should become:
>>>>>>>>
>>>>>>>>     someAlgorithm->Update(1);
>>>>>>>>
>>>>>>>>
>>>>>>>> However, I don’t know how to deal with the following pattern:
>>>>>>>>
>>>>>>>> void PointAreaComputer::WriteIntoFile(char *fileName)
>>>>>>>> {
>>>>>>>>     vtkPolyDataWriter* writer=vtkPolyDataWriter::New();
>>>>>>>>     writer->SetFileName(fileName);
>>>>>>>>     m_mesh->GetPointData()->SetScalars(m_pointsArea);
>>>>>>>>     writer->SetInputData(m_mesh);
>>>>>>>>     writer->Update();
>>>>>>>>     writer->Write();
>>>>>>>>     writer->Delete();
>>>>>>>> }
>>>>>>>>
>>>>>>>> What should I do to make this compatible with VTK6?
>>>>>>>>
>>>>>>>> Cheers,
>>>>>>>> @rno
>>>>>>>>
>>>>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20151210/08793be4/attachment.html>


More information about the vtkusers mailing list