[Cmake] FindTcl.cmake : manual install support

Sebastien BARRE sebastien at barre.nom.fr
Tue May 22 10:19:36 EDT 2001


At 12/05/2001 03:17, Sebastien BARRE wrote:

No answers either, so I might implement this one :

GET_FILEPATH(varname fullpathname)

but it looks a bit too specific to me...


>Hi
>
>Although I've added support for the registry keys in FindTcl.cmake, CMake 
>is still unable to find my Tcl include or library path, for the simple 
>reason that my Tcl distrib is installed manually.
>
>Nevertheless, I want CMake to detect it :) I'm quite sure I'm not the only 
>one using manual install in Windows. In that case, I'm also quite sure 
>that one of the following condition is met (probably both) :
>
>    A) the path to the Tcl binaries (i.e. tclsh, wish) is in the PATH
>    B) there is a "File Association" set between the ".tcl" extension and 
> the binary assigned to open these files.
>
>I need some advices to solve at least one of them.
>
>A) the path to the Tcl binaries (i.e. tclsh, wish) is in the PATH :
>
>FIND_PROGRAM(TCL_TCLSH
>   NAMES tclsh tclsh84 tclsh83 tclsh82 tclsh80
>)
>
>FIND_PROGRAM(TK_WISH
>   NAMES wish wish84 wish83 wish82 wish80
>)
>
>both commands actually succeeds in finding the binaries in my system.
>
>//Path to a program.
>TCL_TCLSH:FILEPATH=C:/devel/langages/tcl/8.3/bin/tclsh83.exe
>
>//Path to a program.
>TK_WISH:FILEPATH=C:/devel/langages/tcl/8.3/bin/wish83.exe
>
>Now in order to feed something to FIND_LIBRARY, I need to get the *path* 
>of that full pathname (i.e. remove the binary name, tclsh83.exe, or 
>wish83.exe), and append "../lib" (because most of us will keep the usual 
>TCL_ROOT/lib, TCL_ROOT/bin, TCL_ROOT/include structure).
>
>This simple command will fail (of course) :
>
>FIND_LIBRARY(TCL_LIBRARY
>   ${TCL_TCLSH}/../lib
>   ${TK_WISTH}/../lib
>)
>
>Question : how can I perform that operation ? Should I write a new 
>command, GET_FILEPATH(var fullpathname) ?
>
>BTW, a call to FIND_PROGRAM(TCL_TCLSH ...) will actually add TCL_TCLSH to 
>the GUI and the CACHE. I do not need it, I guess it clutters the 
>interface, and it can be confusing. Is there a way to say that TCL_TCLSH 
>is "local" (i.e. should not persist through the GUI or the cache) ?
>
>
>    B) there is a "File Association" set between the ".tcl" extension and 
> the binary assigned to open these files.
>
>I do not know if it's worth the try, because the 'default pathname" + "the 
>registry" + A) will probably meet 99% of the requirements. Anyway, for the 
>sake of completeness :
>
>HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.tcl
>  "Application" => wish83.exe
>
>HKEY_CLASSES_ROOT\Applications\wish83.exe\shell\open\command
>or
>HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\wish83.exe\shell\open\command
>   "defaults" => C:\devel\langages\tcl\8.3\bin\wis83.exe "%1"
>
>which leads to the directory holding the binaries (hence a good 
>probability to find the lib/ and include/ path).
>
>Thanks
>
>
>_______________________________________________
>Cmake mailing list
>Cmake at public.kitware.com
>http://public.kitware.com/mailman/listinfo/cmake





More information about the CMake mailing list