mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-04 04:40:56 -06:00
99 lines
3.1 KiB
CMake
99 lines
3.1 KiB
CMake
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
|
# file LICENSE.rst or https://cmake.org/licensing for details.
|
|
|
|
#[=======================================================================[.rst:
|
|
FindWish
|
|
--------
|
|
|
|
Finds ``wish``, a simple windowing shell command-line executable.
|
|
|
|
This module is commonly used in conjunction with finding a TCL installation (see
|
|
the :module:`FindTCL` module). It helps determine where the TCL include paths
|
|
and libraries are, as well as identifying the name of the TCL library.
|
|
|
|
If the :variable:`UNIX` variable is defined, the module will prioritize looking
|
|
for the Cygwin version of ``wish`` executable.
|
|
|
|
Cache Variables
|
|
^^^^^^^^^^^^^^^
|
|
|
|
The following cache variables may be set:
|
|
|
|
``TK_WISH``
|
|
The path to the ``wish`` executable.
|
|
|
|
Examples
|
|
^^^^^^^^
|
|
|
|
Finding ``wish``:
|
|
|
|
.. code-block:: cmake
|
|
|
|
find_package(Wish)
|
|
message(STATUS "Found wish at: ${TK_WISH}")
|
|
#]=======================================================================]
|
|
|
|
if(UNIX)
|
|
find_program(TK_WISH cygwish80 )
|
|
endif()
|
|
|
|
get_filename_component(TCL_TCLSH_PATH "${TCL_TCLSH}" PATH)
|
|
get_filename_component(TCL_TCLSH_PATH_PARENT "${TCL_TCLSH_PATH}" PATH)
|
|
string(REGEX REPLACE
|
|
"^.*tclsh([0-9]\\.*[0-9]).*$" "\\1" TCL_TCLSH_VERSION "${TCL_TCLSH}")
|
|
|
|
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"
|
|
"${TCL_TCLSH_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(TK_WISH_NAMES
|
|
wish
|
|
wish${TCL_LIBRARY_VERSION} wish${TK_LIBRARY_VERSION} wish${TCL_TCLSH_VERSION}
|
|
wish86 wish8.6
|
|
wish85 wish8.5
|
|
wish84 wish8.4
|
|
wish83 wish8.3
|
|
wish82 wish8.2
|
|
wish80 wish8.0
|
|
)
|
|
|
|
find_program(TK_WISH
|
|
NAMES ${TK_WISH_NAMES}
|
|
HINTS ${TCLTK_POSSIBLE_BIN_PATHS}
|
|
)
|
|
|
|
mark_as_advanced(TK_WISH)
|