2 # This module finds if TCL is installed and determines where the
3 # include files and libraries are. It also determines what the name of
4 # the library is. This code sets the following variables:
5 # TCLSH_FOUND = TRUE if tclsh has been found
6 # TCL_TCLSH = the path to the tclsh executable
7 # In cygwin, look for the cygwin version first. Don't look for it later to
8 # avoid finding the cygwin version on a Win32 build.
10 #=============================================================================
11 # Copyright 2001-2009 Kitware, Inc.
13 # Distributed under the OSI-approved BSD License (the "License");
14 # see accompanying file Copyright.txt for details.
16 # This software is distributed WITHOUT ANY WARRANTY; without even the
17 # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 # See the License for more information.
19 #=============================================================================
20 # (To distribute this file outside of CMake, substitute the full
21 # License text for the above reference.)
24 find_program(TCL_TCLSH NAMES cygtclsh83 cygtclsh80)
27 get_filename_component(TK_WISH_PATH "${TK_WISH}" PATH)
28 get_filename_component(TK_WISH_PATH_PARENT "${TK_WISH_PATH}" PATH)
30 "^.*wish([0-9]\\.*[0-9]).*$" "\\1" TK_WISH_VERSION "${TK_WISH}")
32 get_filename_component(TCL_INCLUDE_PATH_PARENT "${TCL_INCLUDE_PATH}" PATH)
33 get_filename_component(TK_INCLUDE_PATH_PARENT "${TK_INCLUDE_PATH}" PATH)
35 get_filename_component(TCL_LIBRARY_PATH "${TCL_LIBRARY}" PATH)
36 get_filename_component(TCL_LIBRARY_PATH_PARENT "${TCL_LIBRARY_PATH}" PATH)
38 "^.*tcl([0-9]\\.*[0-9]).*$" "\\1" TCL_LIBRARY_VERSION "${TCL_LIBRARY}")
40 get_filename_component(TK_LIBRARY_PATH "${TK_LIBRARY}" PATH)
41 get_filename_component(TK_LIBRARY_PATH_PARENT "${TK_LIBRARY_PATH}" PATH)
43 "^.*tk([0-9]\\.*[0-9]).*$" "\\1" TK_LIBRARY_VERSION "${TK_LIBRARY}")
45 set(TCLTK_POSSIBLE_BIN_PATHS
46 "${TCL_INCLUDE_PATH_PARENT}/bin"
47 "${TK_INCLUDE_PATH_PARENT}/bin"
48 "${TCL_LIBRARY_PATH_PARENT}/bin"
49 "${TK_LIBRARY_PATH_PARENT}/bin"
50 "${TK_WISH_PATH_PARENT}/bin"
54 get_filename_component(
55 ActiveTcl_CurrentVersion
56 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl;CurrentVersion]"
58 set(TCLTK_POSSIBLE_BIN_PATHS ${TCLTK_POSSIBLE_BIN_PATHS}
59 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl\\${ActiveTcl_CurrentVersion}]/bin"
60 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.6;Root]/bin"
61 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.5;Root]/bin"
62 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/bin"
63 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.3;Root]/bin"
64 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.2;Root]/bin"
65 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.0;Root]/bin"
71 tclsh${TCL_LIBRARY_VERSION} tclsh${TK_LIBRARY_VERSION} tclsh${TK_WISH_VERSION}
80 find_program(TCL_TCLSH
81 NAMES ${TCL_TCLSH_NAMES}
82 HINTS ${TCLTK_POSSIBLE_BIN_PATHS}
86 execute_process(COMMAND "${CMAKE_COMMAND}" -E echo puts "\$tcl_version"
87 COMMAND "${TCL_TCLSH}"
88 OUTPUT_VARIABLE TCLSH_VERSION_STRING
90 OUTPUT_STRIP_TRAILING_WHITESPACE)
93 # handle the QUIETLY and REQUIRED arguments and set TIFF_FOUND to TRUE if
94 # all listed variables are TRUE
95 include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
96 FIND_PACKAGE_HANDLE_STANDARD_ARGS(Tclsh
97 REQUIRED_VARS TCL_TCLSH
98 VERSION_VAR TCLSH_VERSION_STRING)
100 mark_as_advanced(TCL_TCLSH)