FindCABLE.cmake 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #
  2. # This module finds if CABLE is installed and determines where the
  3. # include files and libraries are. This code sets the following variables:
  4. #
  5. # CABLE = the full path to the cable executable
  6. # CABLE_TCL_LIBRARY = the full path to the Tcl wrapper facility library
  7. # CABLE_INCLUDE_DIR = the full path to the cable include directory
  8. #
  9. # To build Tcl wrappers, you should add shared library and link it to
  10. # ${CABLE_TCL_LIBRARY}. You should also add ${CABLE_INCLUDE_DIR} as
  11. # an include directory.
  12. #
  13. IF(NOT CABLE)
  14. FIND_PATH(CABLE_BUILD_DIR cableVersion.h)
  15. ENDIF(NOT CABLE)
  16. IF(CABLE_BUILD_DIR)
  17. LOAD_CACHE(${CABLE_BUILD_DIR}
  18. EXCLUDE
  19. BUILD_SHARED_LIBS
  20. LIBRARY_OUTPUT_PATH
  21. EXECUTABLE_OUTPUT_PATH
  22. MAKECOMMAND
  23. CMAKE_INSTALL_PREFIX
  24. INCLUDE_INTERNALS
  25. CABLE_LIBRARY_PATH
  26. CABLE_EXECUTABLE_PATH)
  27. IF(CABLE_LIBRARY_PATH)
  28. FIND_LIBRARY(CABLE_TCL_LIBRARY NAMES CableTclFacility PATHS
  29. ${CABLE_LIBRARY_PATH}
  30. ${CABLE_LIBRARY_PATH}/*)
  31. ELSE(CABLE_LIBRARY_PATH)
  32. FIND_LIBRARY(CABLE_TCL_LIBRARY NAMES CableTclFacility PATHS
  33. ${CABLE_BINARY_DIR}/CableTclFacility
  34. ${CABLE_BINARY_DIR}/CableTclFacility/*)
  35. ENDIF(CABLE_LIBRARY_PATH)
  36. IF(CABLE_EXECUTABLE_PATH)
  37. FIND_PROGRAM(CABLE NAMES cable PATHS
  38. ${CABLE_EXECUTABLE_PATH}
  39. ${CABLE_EXECUTABLE_PATH}/*)
  40. ELSE(CABLE_EXECUTABLE_PATH)
  41. FIND_PROGRAM(CABLE NAMES cable PATHS
  42. ${CABLE_BINARY_DIR}/Executables
  43. ${CABLE_BINARY_DIR}/Executables/*)
  44. ENDIF(CABLE_EXECUTABLE_PATH)
  45. FIND_PATH(CABLE_INCLUDE_DIR CableTclFacility/ctCalls.h
  46. ${CABLE_SOURCE_DIR})
  47. ELSE(CABLE_BUILD_DIR)
  48. # Find the cable executable in the path.
  49. FIND_PROGRAM(CABLE NAMES cable)
  50. # Get the path where the executable sits, but without the executable
  51. # name on it.
  52. GET_FILENAME_COMPONENT(CABLE_ROOT_BIN ${CABLE} PATH)
  53. # Find the cable include directory in a path relative to the cable
  54. # executable.
  55. FIND_PATH(CABLE_INCLUDE_DIR CableTclFacility/ctCalls.h
  56. ${CABLE_ROOT_BIN}/../include/Cable)
  57. # Find the WrapTclFacility library in a path relative to the cable
  58. # executable.
  59. FIND_LIBRARY(CABLE_TCL_LIBRARY NAMES CableTclFacility PATHS
  60. ${CABLE_ROOT_BIN}/../lib/Cable)
  61. ENDIF(CABLE_BUILD_DIR)