diff options
Diffstat (limited to 'Modules/FindCABLE.cmake')
-rw-r--r-- | Modules/FindCABLE.cmake | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/Modules/FindCABLE.cmake b/Modules/FindCABLE.cmake new file mode 100644 index 000000000..678fb07ca --- /dev/null +++ b/Modules/FindCABLE.cmake @@ -0,0 +1,81 @@ +# - Find CABLE +# This module finds if CABLE is installed and determines where the +# include files and libraries are. This code sets the following variables: +# +# CABLE the path to the cable executable +# CABLE_TCL_LIBRARY the path to the Tcl wrapper library +# CABLE_INCLUDE_DIR the path to the include directory +# +# To build Tcl wrappers, you should add shared library and link it to +# ${CABLE_TCL_LIBRARY}. You should also add ${CABLE_INCLUDE_DIR} as +# an include directory. + +#============================================================================= +# Copyright 2001-2009 Kitware, Inc. +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) + +IF(NOT CABLE) + FIND_PATH(CABLE_BUILD_DIR cableVersion.h) +ENDIF(NOT CABLE) + +IF(CABLE_BUILD_DIR) + LOAD_CACHE(${CABLE_BUILD_DIR} + EXCLUDE + BUILD_SHARED_LIBS + LIBRARY_OUTPUT_PATH + EXECUTABLE_OUTPUT_PATH + MAKECOMMAND + CMAKE_INSTALL_PREFIX + INCLUDE_INTERNALS + CABLE_LIBRARY_PATH + CABLE_EXECUTABLE_PATH) + + IF(CABLE_LIBRARY_PATH) + FIND_LIBRARY(CABLE_TCL_LIBRARY NAMES CableTclFacility PATHS + ${CABLE_LIBRARY_PATH} + ${CABLE_LIBRARY_PATH}/*) + ELSE(CABLE_LIBRARY_PATH) + FIND_LIBRARY(CABLE_TCL_LIBRARY NAMES CableTclFacility PATHS + ${CABLE_BINARY_DIR}/CableTclFacility + ${CABLE_BINARY_DIR}/CableTclFacility/*) + ENDIF(CABLE_LIBRARY_PATH) + + IF(CABLE_EXECUTABLE_PATH) + FIND_PROGRAM(CABLE NAMES cable PATHS + ${CABLE_EXECUTABLE_PATH} + ${CABLE_EXECUTABLE_PATH}/*) + ELSE(CABLE_EXECUTABLE_PATH) + FIND_PROGRAM(CABLE NAMES cable PATHS + ${CABLE_BINARY_DIR}/Executables + ${CABLE_BINARY_DIR}/Executables/*) + ENDIF(CABLE_EXECUTABLE_PATH) + + FIND_PATH(CABLE_INCLUDE_DIR CableTclFacility/ctCalls.h + ${CABLE_SOURCE_DIR}) +ELSE(CABLE_BUILD_DIR) + # Find the cable executable in the path. + FIND_PROGRAM(CABLE NAMES cable) + + # Get the path where the executable sits, but without the executable + # name on it. + GET_FILENAME_COMPONENT(CABLE_ROOT_BIN ${CABLE} PATH) + + # Find the cable include directory in a path relative to the cable + # executable. + FIND_PATH(CABLE_INCLUDE_DIR CableTclFacility/ctCalls.h + ${CABLE_ROOT_BIN}/../include/Cable) + + # Find the WrapTclFacility library in a path relative to the cable + # executable. + FIND_LIBRARY(CABLE_TCL_LIBRARY NAMES CableTclFacility PATHS + ${CABLE_ROOT_BIN}/../lib/Cable) +ENDIF(CABLE_BUILD_DIR) |