[cmake-developers] [CMake 0011781]: FindTCL.cmake misses opporturnities to find tclsh on Windows

Mantis Bug Tracker mantis at public.kitware.com
Tue Feb 1 04:52:25 EST 2011


The following issue has been SUBMITTED. 
====================================================================== 
http://public.kitware.com/Bug/view.php?id=11781 
====================================================================== 
Reported By:                Frerich Raabe
Assigned To:                
====================================================================== 
Project:                    CMake
Issue ID:                   11781
Category:                   Modules
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     new
====================================================================== 
Date Submitted:             2011-02-01 04:52 EST
Last Modified:              2011-02-01 04:52 EST
====================================================================== 
Summary:                    FindTCL.cmake misses opporturnities to find tclsh on
Windows
Description: 
I'm using ActiveTcl on Windows 7 and noticed that the FindTCL.cmake module fails
to locate 'tclsh.exe' for me - but only on the first cmake run. Re-running cmake
immediately causes tclsh.exe to be found successfully.

Steps to Reproduce: 
1. Run 'cmake' on the following CMakeLists.txt file:

    cmake_minimum_required( VERSION 2.8 )
    set( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake )

    find_package(TCL)

2. For me, it successfully finds TCL but it does not find tclsh (since it's not
in my path and not in my registry either).

3. Re-run cmake as in step 1)

4. At this point, tclsh is found


Additional Information: 
A simple workaround (which I'm using right now) to resolve this problem for me
is to just use

    find_package(TCL)
    find_package(TclSh)

I investigated a bit more and noticed that FindTclsh.cmake references a number
of variables which are only set in FindTCL.cmake (but *after* FindTclsh.cmake is
included). In particular, all of the following variables (this is a quote from
FindTclsh.cmake):

    SET(TCLTK_POSSIBLE_BIN_PATHS
      "${TCL_INCLUDE_PATH_PARENT}/bin"
      "${TK_INCLUDE_PATH_PARENT}/bin"
      "${TCL_LIBRARY_PATH_PARENT}/bin"
      "${TK_LIBRARY_PATH_PARENT}/bin"
      "${TK_WISH_PATH_PARENT}/bin"
      )


====================================================================== 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2011-02-01 04:52 Frerich Raabe  New Issue                                    
======================================================================




More information about the cmake-developers mailing list