FindTCL.cmake 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. #
  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. #
  6. # TCL_LIBRARY = full path to the Tcl library (tcl tcl80 etc)
  7. # TCL_LIBRARY_DEBUG = full path to the Tcl library (debug)
  8. # TCL_STUB_LIBRARY = full path to the Tcl stub library
  9. # TCL_STUB_LIBRARY_DEBUG = full path to the Tcl stub library (debug)
  10. # TCL_INCLUDE_PATH = path to where tcl.h can be found
  11. # TCL_TCLSH = full path to the tclsh binary (tcl tcl80 etc)
  12. # TK_LIBRARY = full path to the Tk library (tk tk80 etc)
  13. # TK_LIBRARY_DEBUG = full path to the Tk library (debug)
  14. # TK_STUB_LIBRARY = full path to the Tk stub library
  15. # TK_STUB_LIBRARY_DEBUG = full path to the Tk stub library (debug)
  16. # TK_INCLUDE_PATH = path to where tk.h can be found
  17. # TK_INTERNAL_PATH = path to where tkWinInt.h can be found
  18. # TK_WISH = full path to the wish binary (wish wish80 etc)
  19. #
  20. INCLUDE(${CMAKE_ROOT}/Modules/FindTclsh.cmake)
  21. INCLUDE(${CMAKE_ROOT}/Modules/FindWish.cmake)
  22. GET_FILENAME_COMPONENT(TCL_TCLSH_PATH ${TCL_TCLSH} PATH)
  23. GET_FILENAME_COMPONENT(TK_WISH_PATH ${TK_WISH} PATH)
  24. SET (TCLTK_POSSIBLE_LIB_PATHS
  25. "${TCL_TCLSH_PATH}/../lib"
  26. "${TK_WISH_PATH}/../lib"
  27. /usr/lib
  28. /usr/local/lib
  29. "C:/Program Files/Tcl/lib"
  30. "C:/Tcl/lib"
  31. [HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/lib
  32. [HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.3;Root]/lib
  33. [HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.2;Root]/lib
  34. [HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.0;Root]/lib
  35. )
  36. FIND_LIBRARY(TCL_LIBRARY
  37. NAMES tcl tcl84 tcl8.4 tcl83 tcl8.3 tcl82 tcl8.2 tcl80 tcl8.0
  38. PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
  39. )
  40. FIND_LIBRARY(TCL_LIBRARY_DEBUG
  41. NAMES tcld tcl84d tcl8.4d tcl83d tcl8.3d tcl82d tcl8.2d tcl80d tcl8.0d
  42. PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
  43. )
  44. FIND_LIBRARY(TCL_STUB_LIBRARY
  45. NAMES tclstub tclstub84 tclstub8.4 tclstub83 tclstub8.3 tclstub82 tclstub8.2 tclstub80 tclstub8.0
  46. PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
  47. )
  48. FIND_LIBRARY(TCL_STUB_LIBRARY_DEBUG
  49. NAMES tclstubd tclstub84d tclstub8.4d tclstub83d tclstub8.3d tclstub82d tclstub8.2d tclstub80d tclstub8.0d
  50. PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
  51. )
  52. FIND_LIBRARY(TK_LIBRARY
  53. NAMES tk tk84 tk8.4 tk83 tk8.3 tk82 tk8.2 tk80 tk8.0
  54. PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
  55. )
  56. FIND_LIBRARY(TK_LIBRARY_DEBUG
  57. NAMES tkd tk84d tk8.4d tk83d tk8.3d tk82d tk8.2d tk80d tk8.0d
  58. PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
  59. )
  60. FIND_LIBRARY(TK_STUB_LIBRARY
  61. NAMES tkstub tkstub84 tkstub8.4 tkstub83 tkstub8.3 tkstub82 tkstub8.2 tkstub80 tkstub8.0
  62. PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
  63. )
  64. FIND_LIBRARY(TK_STUB_LIBRARY_DEBUG
  65. NAMES tkstubd tkstub84d tkstub8.4d tkstub83d tkstub8.3d tkstub82d tkstub8.2d tkstub80d tkstub8.0d
  66. PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
  67. )
  68. SET (TCLTK_POSSIBLE_INCLUDE_PATHS
  69. ~/Library/Frameworks/Tcl.framework/Headers
  70. ~/Library/Frameworks/Tk.framework/Headers
  71. ~/Library/Frameworks/Tk.framework/PrivateHeaders
  72. /Library/Frameworks/Tcl.framework/Headers
  73. /Library/Frameworks/Tk.framework/Headers
  74. /Library/Frameworks/Tk.framework/PrivateHeaders
  75. "${TCL_TCLSH_PATH}/../include"
  76. "${TK_WISH_PATH}/../include"
  77. /usr/include
  78. /usr/local/include
  79. /usr/include/tcl8.4
  80. /usr/include/tcl8.3
  81. /usr/include/tcl8.2
  82. /usr/include/tcl8.0
  83. "C:/Program Files/Tcl/include"
  84. "C:/Tcl/include"
  85. [HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/include
  86. [HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.3;Root]/include
  87. [HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.2;Root]/include
  88. [HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.0;Root]/include
  89. )
  90. FIND_PATH(TCL_INCLUDE_PATH tcl.h
  91. ${TCLTK_POSSIBLE_INCLUDE_PATHS}
  92. )
  93. FIND_PATH(TK_INCLUDE_PATH tk.h
  94. ${TCLTK_POSSIBLE_INCLUDE_PATHS}
  95. )
  96. IF (WIN32)
  97. FIND_PATH(TK_INTERNAL_PATH tkWinInt.h
  98. ${TCLTK_POSSIBLE_INCLUDE_PATHS}
  99. )
  100. MARK_AS_ADVANCED(TK_INTERNAL_PATH)
  101. MARK_AS_ADVANCED(
  102. TCL_TCLSH_PATH
  103. TK_WISH_PATH
  104. TCL_INCLUDE_PATH
  105. TK_INCLUDE_PATH
  106. TCL_LIBRARY
  107. TCL_LIBRARY_DEBUG
  108. TK_LIBRARY
  109. TK_LIBRARY_DEBUG
  110. )
  111. ENDIF(WIN32)
  112. IF(APPLE)
  113. IF(EXISTS ~/Library/Frameworks/Tcl.framework)
  114. SET(TCL_HAVE_FRAMEWORK 1)
  115. ENDIF(EXISTS ~/Library/Frameworks/Tcl.framework)
  116. IF(EXISTS /Library/Frameworks/Tcl.framework)
  117. SET(TCL_HAVE_FRAMEWORK 1)
  118. ENDIF(EXISTS /Library/Frameworks/Tcl.framework)
  119. IF(EXISTS ~/Library/Frameworks/Tk.framework)
  120. SET(TCL_TK_HAVE_FRAMEWORK 1)
  121. ENDIF(EXISTS ~/Library/Frameworks/Tk.framework)
  122. IF(EXISTS /Library/Frameworks/Tk.framework)
  123. SET(TCL_TK_HAVE_FRAMEWORK 1)
  124. ENDIF(EXISTS /Library/Frameworks/Tk.framework)
  125. IF("${TCL_INCLUDE_PATH}" MATCHES "Tcl\\.framework")
  126. SET(TCL_LIBRARY "")
  127. ENDIF("${TCL_INCLUDE_PATH}" MATCHES "Tcl\\.framework")
  128. IF("${TK_INCLUDE_PATH}" MATCHES "Tk\\.framework")
  129. SET(TK_LIBRARY "")
  130. ENDIF("${TK_INCLUDE_PATH}" MATCHES "Tk\\.framework")
  131. IF(TCL_HAVE_FRAMEWORK)
  132. IF(NOT TCL_LIBRARY)
  133. SET (TCL_LIBRARY "-framework Tcl" CACHE FILEPATH "Tcl Framework" FORCE)
  134. ENDIF(NOT TCL_LIBRARY)
  135. ENDIF(TCL_HAVE_FRAMEWORK)
  136. IF(TCL_TK_HAVE_FRAMEWORK)
  137. IF(NOT TK_LIBRARY)
  138. SET (TK_LIBRARY "-framework Tk" CACHE FILEPATH "Tk Framework" FORCE)
  139. ENDIF(NOT TK_LIBRARY)
  140. ENDIF(TCL_TK_HAVE_FRAMEWORK)
  141. ENDIF(APPLE)
  142. MARK_AS_ADVANCED(
  143. TCL_STUB_LIBRARY
  144. TCL_STUB_LIBRARY_DEBUG
  145. TK_STUB_LIBRARY
  146. TK_STUB_LIBRARY_DEBUG
  147. )