FindWish.cmake 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #.rst:
  2. # FindWish
  3. # --------
  4. #
  5. # Find wish installation
  6. #
  7. # This module finds if TCL is installed and determines where the include
  8. # files and libraries are. It also determines what the name of the
  9. # library is. This code sets the following variables:
  10. #
  11. # ::
  12. #
  13. # TK_WISH = the path to the wish executable
  14. #
  15. #
  16. #
  17. # if UNIX is defined, then it will look for the cygwin version first
  18. #=============================================================================
  19. # Copyright 2001-2009 Kitware, Inc.
  20. #
  21. # Distributed under the OSI-approved BSD License (the "License");
  22. # see accompanying file Copyright.txt for details.
  23. #
  24. # This software is distributed WITHOUT ANY WARRANTY; without even the
  25. # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  26. # See the License for more information.
  27. #=============================================================================
  28. # (To distribute this file outside of CMake, substitute the full
  29. # License text for the above reference.)
  30. if(UNIX)
  31. find_program(TK_WISH cygwish80 )
  32. endif()
  33. get_filename_component(TCL_TCLSH_PATH "${TCL_TCLSH}" PATH)
  34. get_filename_component(TCL_TCLSH_PATH_PARENT "${TCL_TCLSH_PATH}" PATH)
  35. string(REGEX REPLACE
  36. "^.*tclsh([0-9]\\.*[0-9]).*$" "\\1" TCL_TCLSH_VERSION "${TCL_TCLSH}")
  37. get_filename_component(TCL_INCLUDE_PATH_PARENT "${TCL_INCLUDE_PATH}" PATH)
  38. get_filename_component(TK_INCLUDE_PATH_PARENT "${TK_INCLUDE_PATH}" PATH)
  39. get_filename_component(TCL_LIBRARY_PATH "${TCL_LIBRARY}" PATH)
  40. get_filename_component(TCL_LIBRARY_PATH_PARENT "${TCL_LIBRARY_PATH}" PATH)
  41. string(REGEX REPLACE
  42. "^.*tcl([0-9]\\.*[0-9]).*$" "\\1" TCL_LIBRARY_VERSION "${TCL_LIBRARY}")
  43. get_filename_component(TK_LIBRARY_PATH "${TK_LIBRARY}" PATH)
  44. get_filename_component(TK_LIBRARY_PATH_PARENT "${TK_LIBRARY_PATH}" PATH)
  45. string(REGEX REPLACE
  46. "^.*tk([0-9]\\.*[0-9]).*$" "\\1" TK_LIBRARY_VERSION "${TK_LIBRARY}")
  47. set(TCLTK_POSSIBLE_BIN_PATHS
  48. "${TCL_INCLUDE_PATH_PARENT}/bin"
  49. "${TK_INCLUDE_PATH_PARENT}/bin"
  50. "${TCL_LIBRARY_PATH_PARENT}/bin"
  51. "${TK_LIBRARY_PATH_PARENT}/bin"
  52. "${TCL_TCLSH_PATH_PARENT}/bin"
  53. )
  54. if(WIN32)
  55. get_filename_component(
  56. ActiveTcl_CurrentVersion
  57. "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl;CurrentVersion]"
  58. NAME)
  59. set(TCLTK_POSSIBLE_BIN_PATHS ${TCLTK_POSSIBLE_BIN_PATHS}
  60. "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl\\${ActiveTcl_CurrentVersion}]/bin"
  61. "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.6;Root]/bin"
  62. "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.5;Root]/bin"
  63. "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/bin"
  64. "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.3;Root]/bin"
  65. "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.2;Root]/bin"
  66. "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.0;Root]/bin"
  67. )
  68. endif()
  69. set(TK_WISH_NAMES
  70. wish
  71. wish${TCL_LIBRARY_VERSION} wish${TK_LIBRARY_VERSION} wish${TCL_TCLSH_VERSION}
  72. wish86 wish8.6
  73. wish85 wish8.5
  74. wish84 wish8.4
  75. wish83 wish8.3
  76. wish82 wish8.2
  77. wish80 wish8.0
  78. )
  79. find_program(TK_WISH
  80. NAMES ${TK_WISH_NAMES}
  81. HINTS ${TCLTK_POSSIBLE_BIN_PATHS}
  82. )
  83. mark_as_advanced(TK_WISH)