浏览代码

ENH: make it a bit smarter at finding stuff: now you need only to set *ONE* of (TCL|TK)_INCLUDE_PATH, (TCL|TK)_LIBRARY, TCL_TCLSH and the rest will be found.

Sebastien Barre 22 年之前
父节点
当前提交
1b2e663dfb
共有 2 个文件被更改,包括 16 次插入3 次删除
  1. 9 3
      Modules/FindTCL.cmake
  2. 7 0
      Modules/FindTclsh.cmake

+ 9 - 3
Modules/FindTCL.cmake

@@ -22,13 +22,14 @@ INCLUDE(${CMAKE_ROOT}/Modules/CMakeFindFrameworks.cmake)
 INCLUDE(${CMAKE_ROOT}/Modules/FindTclsh.cmake)
 INCLUDE(${CMAKE_ROOT}/Modules/FindWish.cmake)
 
-GET_FILENAME_COMPONENT(TCL_TCLSH_PATH ${TCL_TCLSH} PATH)
-
-GET_FILENAME_COMPONENT(TK_WISH_PATH ${TK_WISH} PATH)
+GET_FILENAME_COMPONENT(TCL_TCLSH_PATH "${TCL_TCLSH}" PATH)
+GET_FILENAME_COMPONENT(TK_WISH_PATH "${TK_WISH}" PATH)
 
 SET (TCLTK_POSSIBLE_LIB_PATHS
   "${TCL_TCLSH_PATH}/../lib"
   "${TK_WISH_PATH}/../lib"
+  "${TCL_INCLUDE_PATH}/../lib"
+  "${TK_INCLUDE_PATH}/../lib"
   "C:/Program Files/Tcl/lib" 
   "C:/Tcl/lib" 
   [HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/lib
@@ -101,9 +102,14 @@ IF(Tk_FRAMEWORKS)
   ENDIF(NOT TK_INCLUDE_PATH)
 ENDIF(Tk_FRAMEWORKS)
 
+GET_FILENAME_COMPONENT(TCL_LIBRARY_PATH "${TCL_LIBRARY}" PATH)
+GET_FILENAME_COMPONENT(TK_LIBRARY_PATH "${TK_LIBRARY}" PATH)
+
 SET (TCLTK_POSSIBLE_INCLUDE_PATHS
   ${TCL_TCLSH_PATH}/../include
   ${TK_WISH_PATH}/../include
+  "${TCL_LIBRARY_PATH}/../include"
+  "${TK_LIBRARY_PATH}/../include"
   [HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/include
   [HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.3;Root]/include
   [HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.2;Root]/include

+ 7 - 0
Modules/FindTclsh.cmake

@@ -14,6 +14,9 @@ IF(WIN32)
   ENDIF(UNIX)
 ENDIF(WIN32)
 
+GET_FILENAME_COMPONENT(TCL_LIBRARY_PATH "${TCL_LIBRARY}" PATH)
+GET_FILENAME_COMPONENT(TK_LIBRARY_PATH "${TK_LIBRARY}" PATH)
+
 FIND_PROGRAM(TCL_TCLSH
   NAMES tclsh
   tclsh84 tclsh8.4
@@ -21,6 +24,10 @@ FIND_PROGRAM(TCL_TCLSH
   tclsh82 tclsh8.2
   tclsh80 tclsh8.0
   PATHS
+  "${TCL_INCLUDE_PATH}/../bin"
+  "${TK_INCLUDE_PATH}/../bin"
+  "${TCL_LIBRARY_PATH}/../bin"
+  "${TK_LIBRARY_PATH}/../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