[vtkusers] Migration to VTK6

David Gobbi david.gobbi at gmail.com
Thu Jan 7 08:34:15 EST 2016


Hi Arno,

You can try replacing FindOpenGL.cmake with the latest one from the cmake
master branch:
https://cmake.org/gitweb?p=cmake.git;a=blob_plain;f=Modules/FindOpenGL.cmake
On my machine, for example, the file is located here:
/Applications/CMake.app/Contents/share/cmake-3.4/Modules/FindOpenGL.cmake
That might help with AGL.

 - David


On Thu, Jan 7, 2016 at 5:37 AM, Arno Klein <binarybottle at gmail.com> wrote:

> Yes, it should be building from miniconda2.  However, I can't find any
> instance of "AGL" or of "10.7" anywhere in the code base  (only within the
> bin directory after running cmake).  I am baffled and stuck.
>
> On Wed, Jan 6, 2016 at 9:36 PM David Gobbi <david.gobbi at gmail.com> wrote:
>
>> Hi Arno,
>>
>> Are you still building against the Anaconda python?  The build has to be
>> picking up the AGL and the 10.7 SDK from somewhere, and if it isn't in your
>> CMakeCache.txt, then it must be coming from somewhere.
>>
>>  - David
>>
>> On Wed, Jan 6, 2016 at 7:19 PM, Arno Klein <binarybottle at gmail.com>
>> wrote:
>>
>>> Dear David,
>>>
>>> When I clear the bin directory, then run "cmake .." and "make" I don't
>>> find any instance of 10.7 mentioned in any file, but still get
>>> "AGL.framework" in every subdirectory's build.make file.  The
>>> CMakeCache.txt file contains the following line:
>>>
>>>
>>> CMAKE_OSX_SYSROOT:PATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk
>>>
>>> And yet I am still receiving the following error:
>>>
>>> make[2]: *** No rule to make target
>>> `/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/AGL.framework',
>>> needed by `travel_depth/TravelDepthMain'.  Stop.
>>>
>>> Cheers,
>>> @rno
>>>
>>> On Wed, Jan 6, 2016 at 8:48 PM, David Gobbi <david.gobbi at gmail.com>
>>> wrote:
>>>
>>>> Hi Arno,
>>>>
>>>> It could be a stale dependency.  Remove everything after the "INTERNAL
>>>> cache entries" comment in your CMakeCache.txt, and also search your cache
>>>> to make sure that 10.7 does not appear anywhere.
>>>>
>>>> Also do an "ls -l /System/Library/Frameworks/" to make sure that the
>>>> OpenGL framework isn't a link to a non-existent 10.7 SDK (though I don't
>>>> see how that could happen).
>>>>
>>>>  - David
>>>>
>>>>
>>>> On Wed, Jan 6, 2016 at 5:34 PM, Arno Klein <binarybottle at gmail.com>
>>>> wrote:
>>>>
>>>>> David --
>>>>>
>>>>> There was no instance of "AGL" in CMakeCache.txt, but I replaced every
>>>>> instance of "AGL" with OpenGL" in all of the build.make files.  Without
>>>>> cmake, but with make I got the following error:
>>>>>
>>>>> make[2]: *** No rule to make target
>>>>> `/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/OpenGL.framework',
>>>>> needed by `travel_depth/TravelDepthMain'.  Stop.
>>>>>
>>>>> It still calls 10.7 even though I have 10.11 installed on my Mac.
>>>>>
>>>>> Cheers,
>>>>> @rno
>>>>>
>>>>> On Wed, Jan 6, 2016 at 7:02 PM, David Gobbi <david.gobbi at gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Hi Arno,
>>>>>>
>>>>>> Look for the following line in your CMakeCache.txt:
>>>>>>
>>>>>> OPENGL_glu_LIBRARY:FILEPATH=/System/Library/Frameworks/AGL.framework
>>>>>>
>>>>>> Change it to the following and then recompile:
>>>>>>
>>>>>>
>>>>>> OPENGL_glu_LIBRARY:FILEPATH=/System/Library/Frameworks/OpenGL.framework
>>>>>>
>>>>>> That should keep the problematic AGL library out of your build.
>>>>>>
>>>>>> Please let me know if this works.
>>>>>>
>>>>>> Cheers,
>>>>>>  - David
>>>>>>
>>>>>>
>>>>>> On Wed, Jan 6, 2016 at 4:45 PM, Arno Klein <binarybottle at gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Thank you all so much for your kind help.  Unfortunately, I am still
>>>>>>> unable to compile the C++ code in my project on MacOSX, even after setting
>>>>>>> the following in my top-level CMakeLists.txt file:
>>>>>>> SET(CMAKE_OSX_DEPLOYMENT_TARGET "10.7")
>>>>>>>
>>>>>>> When I type:
>>>>>>> $ export VERBOSE=1
>>>>>>> $ make
>>>>>>>
>>>>>>> I get the following even though I don't have
>>>>>>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/
>>>>>>> but instead have
>>>>>>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/
>>>>>>> on my computer:
>>>>>>>
>>>>>>> ------------------
>>>>>>> ...
>>>>>>>
>>>>>>> *Scanning dependencies of target TravelDepthMain*
>>>>>>>
>>>>>>> /Applications/Xcode.app/Contents/Developer/usr/bin/make -f
>>>>>>> travel_depth/CMakeFiles/TravelDepthMain.dir/build.make
>>>>>>> travel_depth/CMakeFiles/TravelDepthMain.dir/build
>>>>>>>
>>>>>>> [ 57%] Building CXX object
>>>>>>> travel_depth/CMakeFiles/TravelDepthMain.dir/TravelDepthMain.cpp.o
>>>>>>>
>>>>>>> cd /software/install/mindboggle/surface_cpp_tools/bin/travel_depth
>>>>>>> &&
>>>>>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
>>>>>>>   -DvtkRenderingContext2D_AUTOINIT="1(vtkRenderingContextOpenGL)"
>>>>>>> -DvtkRenderingCore_AUTOINIT="3(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingOpenGL)"
>>>>>>> -DvtkRenderingFreeType_AUTOINIT="1(vtkRenderingMatplotlib)"
>>>>>>> -DvtkRenderingVolume_AUTOINIT="1(vtkRenderingVolumeOpenGL)"
>>>>>>> -I/software/install/miniconda2/include/vtk-6.3
>>>>>>> -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7
>>>>>>> -isystem /software/install/miniconda2/include  -isysroot
>>>>>>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk
>>>>>>>   -o CMakeFiles/TravelDepthMain.dir/TravelDepthMain.cpp.o -c
>>>>>>> /software/install/mindboggle/surface_cpp_tools/travel_depth/TravelDepthMain.cpp
>>>>>>>
>>>>>>> make[2]: *** No rule to make target
>>>>>>> `/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/AGL.framework',
>>>>>>> needed by `travel_depth/TravelDepthMain'.  Stop.
>>>>>>>
>>>>>>> make[1]: *** [travel_depth/CMakeFiles/TravelDepthMain.dir/all] Error
>>>>>>> 2
>>>>>>>
>>>>>>> make: *** [all] Error 2
>>>>>>> -------------------
>>>>>>>
>>>>>>>
>>>>>>> Cheers,
>>>>>>> @rno
>>>>>>>
>>>>>>> On Fri, Dec 11, 2015 at 9:36 PM, David Gobbi <david.gobbi at gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi Arno,
>>>>>>>>
>>>>>>>> I think that I've found out where the AGL link is coming from.  It
>>>>>>>> isn't via Carbon, it looks like it was linked directly into the VTK that
>>>>>>>> you're using.  And it looks like a bug within CMake itself.
>>>>>>>>
>>>>>>>> CMake has a module called FindOpenGL.cmake that VTK uses to find
>>>>>>>> OpenGL.  It looks for both the OpenGL.framework and for the obsolete
>>>>>>>> AGL.framework (which is only for Carbon, and is deprecated by Apple).  If
>>>>>>>> it finds both (e.g. with an older SDK and XCode 6 or earlier), then it uses
>>>>>>>> both, even though AGL.framework is really not needed for any modern
>>>>>>>> software.
>>>>>>>>
>>>>>>>> This means that a VTK that is built with (for example) Xcode 6 and
>>>>>>>> its SDKs becomes linked to AGL, because AGL.framework is present in those
>>>>>>>> older SDKs.  It's a private link, though, so I'm surprised that it would
>>>>>>>> cause the error.  But you are building with Xcode 7 and you are seeing an
>>>>>>>> error... that much is indisputable.
>>>>>>>>
>>>>>>>> I suggest that you enable verbose error reporting so that you can
>>>>>>>> see exactly what is being linked when the error occurs:
>>>>>>>>
>>>>>>>> export VERBOSE=1
>>>>>>>> make
>>>>>>>> ...
>>>>>>>>
>>>>>>>> Use "unset VERBOSE" to turn off the verbosity.
>>>>>>>>
>>>>>>>>  - David
>>>>>>>>
>>>>>>>>
>>>>>>>> On Fri, Dec 11, 2015 at 3:57 PM, Arno Klein <binarybottle at gmail.com
>>>>>>>> > wrote:
>>>>>>>>
>>>>>>>>> I tried again, and am still getting the AGL.framework error even
>>>>>>>>> when I set to 10.9 and the SDK to 10.11 (see:
>>>>>>>>> https://github.com/nipy/mindboggle/blob/master/surface_cpp_tools/CMakeLists.txt
>>>>>>>>> ):
>>>>>>>>>
>>>>>>>>> > [ 57%] Building CXX object
>>>>>>>>> travel_depth/CMakeFiles/TravelDepthMain.dir/TravelDepthMain.cpp.o
>>>>>>>>> > make[2]: *** No rule to make target
>>>>>>>>> `/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/AGL.framework',
>>>>>>>>> needed by `travel_depth/TravelDepthMain'.  Stop.
>>>>>>>>> > make[1]: *** [travel_depth/CMakeFiles/TravelDepthMain.dir/all]
>>>>>>>>> Error 2
>>>>>>>>> > make: *** [all] Error 2
>>>>>>>>>
>>>>>>>>> Could you please tell me how to ensure that there are no calls to
>>>>>>>>> Carbon APIs?
>>>>>>>>>
>>>>>>>>> By the way, I am tracking this as an issue on Github:
>>>>>>>>> https://github.com/nipy/mindboggle/issues/69
>>>>>>>>>
>>>>>>>>> Cheers,
>>>>>>>>> @rno
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Fri, Dec 11, 2015 at 5:27 AM, David Gobbi <
>>>>>>>>> david.gobbi at gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Arno,
>>>>>>>>>>
>>>>>>>>>> Using the macosx10.11 SDK is fine as long as it allows you to set
>>>>>>>>>> this desired deployment target.  So if you are able to compile with the
>>>>>>>>>> following settings, then the result should run on OS X 10.7:
>>>>>>>>>>
>>>>>>>>>> CMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.7
>>>>>>>>>> CMAKE_OSX_SYSROOT:STRING=macosx10.11
>>>>>>>>>>
>>>>>>>>>> I'm not sure how far back you can set the deployment target with
>>>>>>>>>> this SDK, but if the 10.7 target doesn't compile, you can try 10.8 or 10.9.
>>>>>>>>>>
>>>>>>>>>> If if gives errors for the AGL.framework, then make sure that
>>>>>>>>>> your code has no calls to Carbon APIs.
>>>>>>>>>>
>>>>>>>>>>  - David
>>>>>>>>>>
>>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20160107/a0457362/attachment.html>


More information about the vtkusers mailing list