[Cmake] vtk, cygwin and cmake

Bill Lorensen lorensen at nycap.rr.com
Sun Jan 12 11:33:03 EST 2003


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 CMake mailing list