diff options
author | Brad King <brad.king@kitware.com> | 2001-09-17 18:16:20 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2001-09-17 18:16:20 (GMT) |
commit | 0598697998b6a1c76ef8f5ea71c65021aab4cbfc (patch) | |
tree | ed3a1ec84be129d8729ab98887c659354e25e0e0 | |
parent | 53dd41451d4cd5f945867ed7a0b1e3015b130aff (diff) | |
download | CMake-0598697998b6a1c76ef8f5ea71c65021aab4cbfc.zip CMake-0598697998b6a1c76ef8f5ea71c65021aab4cbfc.tar.gz CMake-0598697998b6a1c76ef8f5ea71c65021aab4cbfc.tar.bz2 |
ENH: Added find support for looking at Cable's build directory if the user sets the CABLE_BUILD_DIR cache entry.
-rw-r--r-- | Modules/FindCABLE.cmake | 79 |
1 files changed, 56 insertions, 23 deletions
diff --git a/Modules/FindCABLE.cmake b/Modules/FindCABLE.cmake index 7d93b81..a2da0db 100644 --- a/Modules/FindCABLE.cmake +++ b/Modules/FindCABLE.cmake @@ -11,28 +11,61 @@ # an include directory. # -# Use some tricks to find the cable executable relative to somewhere -# in the system search path. CMake will collapse the relative paths -# automatically. -FIND_PROGRAM(CABLE - NAMES cable - ../share/Cable/bin/cable - ../Cable/bin/cable - PATHS /usr/share/Cable/bin - /usr/local/share/Cable/bin - "C:/Program Files/Cable/bin" -) +IF(NOT CABLE) + FIND_PATH(CABLE_BUILD_DIR cable.README.txt) +ENDIF(NOT CABLE) -# Get the path where the executable sits, but without the executable -# name on it. -GET_FILENAME_COMPONENT(CABLE_ROOT_BIN ${CABLE} PATH) +IF(CABLE_BUILD_DIR) + LOAD_CACHE(${CABLE_BUILD_DIR} + EXCLUDE + BUILD_SHARED_LIBS + LIBRARY_OUTPUT_PATH + EXECUTABLE_OUTPUT_PATH + MAKECOMMAND + INCLUDE_INTERNALS + CABLE_LIBRARY_OUTPUT_PATH + CABLE_EXECUTABLE_OUTPUT_PATH) + + IF(CABLE_LIBRARY_OUTPUT_PATH) + FIND_LIBRARY(CABLE_TCL_LIBRARY NAMES WrapTclFacility PATHS + ${CABLE_LIBRARY_OUTPUT_PATH}) + ELSE(CABLE_LIBRARY_OUTPUT_PATH) + FIND_LIBRARY(CABLE_TCL_LIBRARY NAMES WrapTclFacility PATHS + ${CABLE_BINARY_DIR}/WrapTclFacility) + ENDIF(CABLE_LIBRARY_OUTPUT_PATH) + + IF(CABLE_EXECUTABLE_OUTPUT_PATH) + FIND_PROGRAM(CABLE NAMES cable PATHS ${CABLE_EXECUTABLE_OUTPUT_PATH}) + ELSE(CABLE_EXECUTABLE_OUTPUT_PATH) + FIND_PROGRAM(CABLE NAMES cable PATHS ${CABLE_BINARY_DIR}/Executables) + ENDIF(CABLE_EXECUTABLE_OUTPUT_PATH) + + SET(CABLE_INCLUDE_DIR ${CABLE_SOURCE_DIR} + CACHE STRING "Include path for Cable headers.") +ELSE(CABLE_BUILD_DIR) + # Use some tricks to find the cable executable relative to somewhere + # in the system search path. CMake will collapse the relative paths + # automatically. + FIND_PROGRAM(CABLE + NAMES cable + ../share/Cable/bin/cable + ../Cable/bin/cable + PATHS /usr/share/Cable/bin + /usr/local/share/Cable/bin + "C:/Program Files/Cable/bin" + ) -# Find the cable include directory in a path relative to the cable -# executable. -FIND_PATH(CABLE_INCLUDE_DIR WrapTclFacility/wrapCalls.h - ${CABLE_ROOT_BIN}/../include) - -# Find the WrapTclFacility library in a path relative to the cable -# executable. -FIND_LIBRARY(CABLE_TCL_LIBRARY NAMES WrapTclFacility PATHS - ${CABLE_ROOT_BIN}/../lib) + # 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 WrapTclFacility/wrapCalls.h + ${CABLE_ROOT_BIN}/../include) + + # Find the WrapTclFacility library in a path relative to the cable + # executable. + FIND_LIBRARY(CABLE_TCL_LIBRARY NAMES WrapTclFacility PATHS + ${CABLE_ROOT_BIN}/../lib) +ENDIF(CABLE_BUILD_DIR) |