[vtk-developers] vtk, cygwin and cmake

Bill Hoffman bill.hoffman at kitware.com
Mon Jan 13 12:28:55 EST 2003


I am not sure this is the best approach.
I know that STATIC does not have to be a path, so
we can not add that change.   The real problem is
not with cmake, but with cygtcl80.   It is a very
old version of tcl, and it is not really cyg* anything,
it is built with windows paths, so it does not work like
any of the other cygwin built executables.  

I looked around on the web and found a patched tcltk834 here:

ftp://ftp.nanotech.wisc.edu/pub/khan/tcl/tcltk-8.3.4-cygwin/README
ftp://ftp.nanotech.wisc.edu/pub/khan/tcl/tcltk-8.3.4-cygwin/

I have not yet built VTK with this tcl/tk, but Dart works fine and
there are no cygdrive path issues.     I am going to try and build a binary
that I will put on the kitware download site.   So, if you want to 
build VTK with tcl/tk on cygwin, you will have to install this tcl, same
goes for Dart.   This should fix all three issues without changing cmake.

The patched tcl/tk builds out of the box if you follow the instructions.
I will let you know when I have a binary ready for download.


-Bill


At 11:28 AM 1/12/2003 -0500, Bill Lorensen wrote:
>Folks,
>  Cygwin builds of vtk have not worked well in three areas:
>
>1) The package require vtk mechanism has been broken since the pgkIndex.tcl mechanism changed recently.
>2) ctest (and Dart testing) fails on tcl test scripts. This has always been true.
>3) Dart cannot base64 encode regression error images since the cygtclsh80 distributed with cygwin does not have that facility.
>
>All of these defects are related to cygwin's /cygdrive mechanism. Also, the cygtclsh's distributed with cygwin cannot cope with the /cygdrive mechanism.
>
>I noticed that cygwin programs also accept c:/foo/bar pathnames also. So, I looked into modifying cmake to always produce the later style.
>
>I have been able to correct these problems with changes to three cmake files. These changes cause cmake to always create c:/ style paths rather than /cygdrive paths.
>
>cmake.cxx - Changed the CMAKE_COMMAND from INTERNAL to STATIC. CMAKE_COMMAND is used to build several path names during the cmake setup process. I'm not sure if there are side effects to this change. If there are side effects, I could make this change only for cygwin builds.
>
>cmSystemTools.cxx - for cygwin builds, modify the ConvertToUnixSlashes to first convert the path to win32 style and then proceed as usual in the conversion process.
>
>cmCacheManager.cxx - for cygwin builds, apply ConvertToUnixSlashes to STATIC variables (which all seem to be paths)
>
>I've tried these changes on -rLatestRelease as well as the beta.
>
>Now:
>1) "package require vtk" works
>2) ctest can run the tcl tests
>3) the Dart DashboardManager can be run with tclsh's that live outside of cygwin. These other tclsh's can base64 encode the regression images.
>
>Now to my questions. Do these changes seem like the correct way to solve the problem? If so, should I check them in? And into which revisions? I think we could live without this in cmake 1.4.7 since vtk tcl testing has not ever really worked.
>
>Bill
>
>BTW: Today's vtk Dartboard shows two experimental builds that include the results of the tcl tests. Also, I have to build without the Parallel kit since the tests seem to hang. Other than Parallel, the tests in all kits seem to run fine.
>
> 






More information about the vtk-developers mailing list