FindTclsh.cmake 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. # - Find tclsh
  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.
  9. #=============================================================================
  10. # Copyright 2001-2009 Kitware, Inc.
  11. #
  12. # Distributed under the OSI-approved BSD License (the "License");
  13. # see accompanying file Copyright.txt for details.
  14. #
  15. # This software is distributed WITHOUT ANY WARRANTY; without even the
  16. # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  17. # See the License for more information.
  18. #=============================================================================
  19. # (To distribute this file outside of CMake, substitute the full
  20. # License text for the above reference.)
  21. IF(CYGWIN)
  22. FIND_PROGRAM(TCL_TCLSH NAMES cygtclsh83 cygtclsh80)
  23. ENDIF(CYGWIN)
  24. GET_FILENAME_COMPONENT(TK_WISH_PATH "${TK_WISH}" PATH)
  25. GET_FILENAME_COMPONENT(TK_WISH_PATH_PARENT "${TK_WISH_PATH}" PATH)
  26. STRING(REGEX REPLACE
  27. "^.*wish([0-9]\\.*[0-9]).*$" "\\1" TK_WISH_VERSION "${TK_WISH}")
  28. GET_FILENAME_COMPONENT(TCL_INCLUDE_PATH_PARENT "${TCL_INCLUDE_PATH}" PATH)
  29. GET_FILENAME_COMPONENT(TK_INCLUDE_PATH_PARENT "${TK_INCLUDE_PATH}" PATH)
  30. GET_FILENAME_COMPONENT(TCL_LIBRARY_PATH "${TCL_LIBRARY}" PATH)
  31. GET_FILENAME_COMPONENT(TCL_LIBRARY_PATH_PARENT "${TCL_LIBRARY_PATH}" PATH)
  32. STRING(REGEX REPLACE
  33. "^.*tcl([0-9]\\.*[0-9]).*$" "\\1" TCL_LIBRARY_VERSION "${TCL_LIBRARY}")
  34. GET_FILENAME_COMPONENT(TK_LIBRARY_PATH "${TK_LIBRARY}" PATH)
  35. GET_FILENAME_COMPONENT(TK_LIBRARY_PATH_PARENT "${TK_LIBRARY_PATH}" PATH)
  36. STRING(REGEX REPLACE
  37. "^.*tk([0-9]\\.*[0-9]).*$" "\\1" TK_LIBRARY_VERSION "${TK_LIBRARY}")
  38. SET(TCLTK_POSSIBLE_BIN_PATHS
  39. "${TCL_INCLUDE_PATH_PARENT}/bin"
  40. "${TK_INCLUDE_PATH_PARENT}/bin"
  41. "${TCL_LIBRARY_PATH_PARENT}/bin"
  42. "${TK_LIBRARY_PATH_PARENT}/bin"
  43. "${TK_WISH_PATH_PARENT}/bin"
  44. )
  45. IF(WIN32)
  46. GET_FILENAME_COMPONENT(
  47. ActiveTcl_CurrentVersion
  48. "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl;CurrentVersion]"
  49. NAME)
  50. SET(TCLTK_POSSIBLE_BIN_PATHS ${TCLTK_POSSIBLE_BIN_PATHS}
  51. "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl\\${ActiveTcl_CurrentVersion}]/bin"
  52. "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.6;Root]/bin"
  53. "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.5;Root]/bin"
  54. "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/bin"
  55. "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.3;Root]/bin"
  56. "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.2;Root]/bin"
  57. "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.0;Root]/bin"
  58. )
  59. ENDIF(WIN32)
  60. SET(TCL_TCLSH_NAMES
  61. tclsh
  62. tclsh${TCL_LIBRARY_VERSION} tclsh${TK_LIBRARY_VERSION} tclsh${TK_WISH_VERSION}
  63. tclsh86 tclsh8.6
  64. tclsh85 tclsh8.5
  65. tclsh84 tclsh8.4
  66. tclsh83 tclsh8.3
  67. tclsh82 tclsh8.2
  68. tclsh80 tclsh8.0
  69. )
  70. FIND_PROGRAM(TCL_TCLSH
  71. NAMES ${TCL_TCLSH_NAMES}
  72. HINTS ${TCLTK_POSSIBLE_BIN_PATHS}
  73. )
  74. # handle the QUIETLY and REQUIRED arguments and set TIFF_FOUND to TRUE if
  75. # all listed variables are TRUE
  76. INCLUDE(FindPackageHandleStandardArgs)
  77. FIND_PACKAGE_HANDLE_STANDARD_ARGS(Tclsh DEFAULT_MSG TCL_TCLSH)
  78. MARK_AS_ADVANCED(TCL_TCLSH)