[vtk-developers] VTK formula in homebrew: TK_INTERNAL_PATH

Samuel John mail at samueljohn.de
Mon Jun 18 16:24:27 EDT 2012


Hi VTK people!

We are trying to improve the vtk formula for homebrew and therefore I need your help with one issue. 
(There is a pull request for the new vtk 5.10 over at https://github.com/mxcl/homebrew/pull/12807)
It looks pretty good so far but one issue puzzles me:

Look at these strange results in my CMakeCache.txt on 10.7.4 OS X:

> //Path to a file.
> TK_INCLUDE_PATH:PATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/include
> this is fine, since the headers are symlinked from the framework to that dir.
> 
> //The path to the Tk internal headers (tkMacOSXDefault.h).
> TK_INTERNAL_PATH:PATH=/tmp/homebrew-vtk-5.10.0-Rfpt/VTK/Utilities/TclTk/internals/tk8.5
> this is bullshit. The private headers are not symlinked to Xcode.app/.../usr/include :-(
> 
> //Path to a library.
> TK_LIBRARY:FILEPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/lib/libtk.dylib

We have set the following CMAKE variables per default on homebrew:
>  -DCMAKE_INSTALL_PREFIX=#{prefix}
>  -DCMAKE_BUILD_TYPE=None
>  -DCMAKE_FIND_FRAMEWORK=LAST
>  -Wno-dev

And these env vars for systems that only have Xcode but not the "Command Line Tools for Xcode":
> CMAKE_PREFIX_PATH = "#{sdk}/usr"

> CMAKE_FRAMEWORK_PATH = "#{sdk}/System/Library/Frameworks"

with sdk=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk

That works fine so far but not for TK_INTERNAL_PATH.
To me it seems cmake or the vtk configuration mixes the Tk from within Xcode with the TclTK included in Utilities.
Further I read the Modlues/FindTCL.cmake in a way that TK_INTERNAL_PATH is deprecated.
I could just overwrite TK_INTERNAL_PATH but I'd like to find a better solution.

In the tk.framework in Xcode there is a directory named Headers/tk-private that contains the needed files.

Is there a switch to tell vtk to use the systems tk.framework and not the one in Utilities? 
Or alternatively use only the one in Utilities? I'd like to avoid setting the correct pathes 'by hand'.


bests, 
 Samuel


More information about the vtk-developers mailing list