1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
##=========================================================================
##
## Copyright (c) Kitware, Inc.
## All rights reserved.
## See Copyright.txt or http://www.kitware.com/VolViewCopyright.htm for details.
##
## This software is distributed WITHOUT ANY WARRANTY; without even
## the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
## PURPOSE. See the above copyright notice for more information.
##
##=========================================================================
# Set the install prefix
IF(NOT DEFINED CMAKE_INSTALL_PREFIX)
SET(CMAKE_INSTALL_PREFIX "/usr/local")
ENDIF(NOT DEFINED CMAKE_INSTALL_PREFIX)
STRING(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
# Find all the dylibs under the ./lib hierarchy and link them back into the ./lib
# directory for ease of manipulation.
set(CMDLINE "find" )
EXECUTE_PROCESS(COMMAND ${CMDLINE} . -iname *.dylib -exec ln -s {} \; -print
WORKING_DIRECTORY "${CMAKE_INSTALL_PREFIX}/lib"
OUTPUT_VARIABLE RESULT_STREAM
ERROR_VARIABLE ERROR_STREAM)
# Set up the correct name for the tcl/tk libraries based on all the settings previously
# defined. We need to do this to match what was generated with the build settings.
SET(TclTk_MAJOR_MINOR_VERSION
"@TclTk_MAJOR_VERSION@.@TclTk_MINOR_VERSION@")
SET(TclTk_LIBRARY_SUFX "")
IF(CMAKE_BUILD_TYPE MATCHES Debug)
SET(TclTk_BUILD_DEBUG 1)
IF(TclTk_MAJOR_VERSION EQUAL 8 AND TclTk_MINOR_VERSION LESS 5)
SET(TclTk_LIBRARY_SUFX "g")
ENDIF(TclTk_MAJOR_VERSION EQUAL 8 AND TclTk_MINOR_VERSION LESS 5)
ELSE(CMAKE_BUILD_TYPE MATCHES Debug)
SET(TclTk_BUILD_DEBUG 0)
ENDIF(CMAKE_BUILD_TYPE MATCHES Debug)
SET(TclTk_LIBRARY_EXT ".dylib")
SET(TCL_RELOCATION_NAME @CMAKE_INSTALL_NAME_DIR@/libtcl${TclTk_MAJOR_MINOR_VERSION}${TclTk_LIBRARY_SUFX}${TclTk_LIBRARY_EXT})
SET(TK_RELOCATION_NAME @CMAKE_INSTALL_NAME_DIR@/libtk${TclTk_MAJOR_MINOR_VERSION}${TclTk_LIBRARY_SUFX}${TclTk_LIBRARY_EXT})
# Now go through the executables and Tcl/Tk libraries and fix up the Tcl/Tk locations.
FILE (GLOB TCL_LIBRARIES_RAW "${CMAKE_INSTALL_PREFIX}/lib/*.dylib" "${CMAKE_INSTALL_PREFIX}/bin/*")
FOREACH(FILENAME IN LISTS TCL_LIBRARIES_RAW)
EXECUTE_PROCESS (COMMAND @CMAKE_INSTALL_NAME_TOOL@
-change @TCL_LIBRARY@ ${TCL_RELOCATION_NAME}
${FILENAME})
EXECUTE_PROCESS (COMMAND @CMAKE_INSTALL_NAME_TOOL@
-change @TK_LIBRARY@ ${TK_RELOCATION_NAME}
${FILENAME})
ENDFOREACH(FILENAME)
# At this point, everything appears to be fixed up except for the plugins. We have a full set of the
# libraries that the plugins are built against in TCL_LIBRARIES_RAW, so lets go through and build the
# command line for the install_name_tool.
FILE (GLOB LIBRARIES_RAW "${CMAKE_INSTALL_PREFIX}/lib/*.dylib")
# At this point, all that is left is to go through the plugins directory and change all the references
# by changing the command line.
FILE (GLOB PLUGIN_LIBRARIES_RAW "${CMAKE_INSTALL_PREFIX}/bin/Plugins/*.so")
FOREACH(FILENAME IN LISTS PLUGIN_LIBRARIES_RAW)
FOREACH(FILENAME_CHANGE IN LISTS LIBRARIES_RAW)
GET_FILENAME_COMPONENT (FILENAME_BASE ${FILENAME_CHANGE} NAME)
SET (FILENAME_BUILD_LOCATION @CMAKE_BINARY_DIR@/bin/${FILENAME_BASE})
SET (FILENAME_RELOCATION @CMAKE_INSTALL_NAME_DIR@/${FILENAME_BASE})
EXECUTE_PROCESS (COMMAND @CMAKE_INSTALL_NAME_TOOL@
-change ${FILENAME_BUILD_LOCATION} ${FILENAME_RELOCATION}
${FILENAME}
)
ENDFOREACH(FILENAME_CHANGE)
ENDFOREACH(FILENAME)
|