123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- # Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- # file Copyright.txt or https://cmake.org/licensing for details.
- #[=======================================================================[.rst:
- FindTclsh
- ---------
- Find tclsh
- This module finds if TCL is installed and determines where the include
- files and libraries are. It also determines what the name of the
- library is. This code sets the following variables:
- ::
- TCLSH_FOUND = TRUE if tclsh has been found
- TCL_TCLSH = the path to the tclsh executable
- In cygwin, look for the cygwin version first. Don't look for it later
- to avoid finding the cygwin version on a Win32 build.
- #]=======================================================================]
- if(CYGWIN)
- find_program(TCL_TCLSH NAMES cygtclsh83 cygtclsh80)
- endif()
- get_filename_component(TK_WISH_PATH "${TK_WISH}" PATH)
- get_filename_component(TK_WISH_PATH_PARENT "${TK_WISH_PATH}" PATH)
- string(REGEX REPLACE
- "^.*wish([0-9]\\.*[0-9]).*$" "\\1" TK_WISH_VERSION "${TK_WISH}")
- get_filename_component(TCL_INCLUDE_PATH_PARENT "${TCL_INCLUDE_PATH}" PATH)
- get_filename_component(TK_INCLUDE_PATH_PARENT "${TK_INCLUDE_PATH}" PATH)
- get_filename_component(TCL_LIBRARY_PATH "${TCL_LIBRARY}" PATH)
- get_filename_component(TCL_LIBRARY_PATH_PARENT "${TCL_LIBRARY_PATH}" PATH)
- string(REGEX REPLACE
- "^.*tcl([0-9]\\.*[0-9]).*$" "\\1" TCL_LIBRARY_VERSION "${TCL_LIBRARY}")
- get_filename_component(TK_LIBRARY_PATH "${TK_LIBRARY}" PATH)
- get_filename_component(TK_LIBRARY_PATH_PARENT "${TK_LIBRARY_PATH}" PATH)
- string(REGEX REPLACE
- "^.*tk([0-9]\\.*[0-9]).*$" "\\1" TK_LIBRARY_VERSION "${TK_LIBRARY}")
- 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"
- )
- if(WIN32)
- get_filename_component(
- ActiveTcl_CurrentVersion
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl;CurrentVersion]"
- NAME)
- set(TCLTK_POSSIBLE_BIN_PATHS ${TCLTK_POSSIBLE_BIN_PATHS}
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl\\${ActiveTcl_CurrentVersion}]/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.6;Root]/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.5;Root]/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.3;Root]/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.2;Root]/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.0;Root]/bin"
- )
- endif()
- set(TCL_TCLSH_NAMES
- tclsh
- tclsh${TCL_LIBRARY_VERSION} tclsh${TK_LIBRARY_VERSION} tclsh${TK_WISH_VERSION}
- tclsh87 tclsh8.7
- tclsh86 tclsh8.6
- tclsh85 tclsh8.5
- tclsh84 tclsh8.4
- tclsh83 tclsh8.3
- tclsh82 tclsh8.2
- tclsh80 tclsh8.0
- )
- find_program(TCL_TCLSH
- NAMES ${TCL_TCLSH_NAMES}
- HINTS ${TCLTK_POSSIBLE_BIN_PATHS}
- )
- if(TCL_TCLSH)
- execute_process(COMMAND "${CMAKE_COMMAND}" -E echo puts "\$tcl_version"
- COMMAND "${TCL_TCLSH}"
- OUTPUT_VARIABLE TCLSH_VERSION_STRING
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- endif()
- include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
- FIND_PACKAGE_HANDLE_STANDARD_ARGS(Tclsh
- REQUIRED_VARS TCL_TCLSH
- VERSION_VAR TCLSH_VERSION_STRING)
- mark_as_advanced(TCL_TCLSH)
|