www.pudn.com > ParaView3.rar > CreateBundle.sh.in


#!/bin/sh 
 
DEBUG=0 
 
TAR_FLAG= 
if [ "x$DEBUG" = "x1" ]; then 
  TAR_FLAG=v 
fi 
 
mkdir -p "@ParaView_BINARY_DIR@/paraview_bundle/paraview.app/Contents/Frameworks" 
mkdir -p "@ParaView_BINARY_DIR@/paraview_bundle/paraview.app/Contents/MacOS" 
mkdir -p "@ParaView_BINARY_DIR@/paraview_bundle/paraview.app/Contents/Resources" 
cd "@ParaView_BINARY_DIR@/paraview_bundle" 
 
echo "Copy ParaView bundle" 
(cd "@ParaView_BINARY_DIR@/bin" && tar c${TAR_FLAG}f - paraview.app) | tar xf - 
(cd "@ParaView_BINARY_DIR@/bin" && tar c${TAR_FLAG}f - pvserver pvdataserver pvrenderserver pvpython) | (cd paraview.app/Contents/MacOS && tar xf -) 
 
echo "Copy ParaView Documentation" 
(cd "@ParaView_BINARY_DIR@/" && tar c${TAR_FLAG}f - Documentation pqClient.adp) | (cd paraview.app/Contents/MacOS && tar xf -) 
 
echo "Copy ParaView libraries" 
(cd "@ParaView_BINARY_DIR@/bin" && tar c${TAR_FLAG}f - *.dylib *.so) | (cd paraview.app/Contents/MacOS && tar xf - ) 
 
echo "Copy ParaView Python scripts" 
(cd "@ParaView_BINARY_DIR@/Utilities/VTKPythonWrapping" && tar c${TAR_FLAG}f - paraview) | (cd paraview.app/Contents/Resources && tar xf - ) 
 
#exit 
 
QT_LIB_DIR="@QT_LIBRARY_DIR@" 
QT_BIN_DIR="$(dirname @QT_MOC_EXECUTABLE@)" 
 
echo "Copy Qt libraries" 
(cd "${QT_LIB_DIR}" && tar cf - *.dylib) | (cd paraview.app/Contents/MacOS && tar xvf - ) 
 
echo "Copy QAssistant" 
(cd "${QT_BIN_DIR}" && tar cf - assistant.app) | (cd paraview.app/Contents/MacOS && tar xvf - ) 
 
echo "Copy Qt frameworks" 
for a in QtCore QtGui QtNetwork QtXml QtAssistant; do 
  (cd "${QT_LIB_DIR}" &&  tar cf - $a.framework) | (cd paraview.app/Contents/Frameworks && tar xvf -)  
done 
 
EXECUTABLES="paraview.app/Contents/MacOS/paraview" 
EXECUTABLES="${EXECUTABLES} paraview.app/Contents/MacOS/pvserver" 
EXECUTABLES="${EXECUTABLES} paraview.app/Contents/MacOS/pvrenderserver" 
EXECUTABLES="${EXECUTABLES} paraview.app/Contents/MacOS/pvdataserver" 
if [ -e paraview.app/Contents/MacOS/pvpython ]; then 
    EXECUTABLES="${EXECUTABLES} paraview.app/Contents/MacOS/pvpython" 
fi 
SUB_EXECUTABLES="${SUB_EXECUTABLES} paraview.app/Contents/MacOS/assistant.app/Contents/MacOS/assistant" 
 
echo "Stage 1 - fix all the Qt dylib's" 
for a in ${QT_LIB_DIR}/*.dylib; do 
  if [ -e $a  ]; then 
      echo -n . 
      file=$(basename $a) 
      for executable in ${EXECUTABLES}; do 
          install_name_tool "${executable}" -change $a @executable_path/${file} 
      done 
      for executable in ${SUB_EXECUTABLES}; do 
          install_name_tool "${executable}" -change $a @executable_path/../../../${file} 
      done 
      install_name_tool paraview.app/Contents/MacOS/${file} -id @executable_path/${file} 
       
      if [ "x$DEBUG" = "x1" ]; then 
          echo "Stage 1.a.$a" 
      fi 
      for lib in @ParaView_BINARY_DIR@/bin/*.so @ParaView_BINARY_DIR@/bin/*.dylib; do 
          libfile=$(basename ${lib}) 
          install_name_tool paraview.app/Contents/MacOS/${file} -change ${lib} @executable_path/${libfile} 
      done 
      if [ "x$DEBUG" = "x1" ]; then 
          echo "Stage 1.b.$a" 
      fi 
      for lib in ${QT_LIB_DIR}/*.dylib; do 
          libfile=$(basename ${lib}) 
          install_name_tool paraview.app/Contents/MacOS/${file} -change ${lib} @executable_path/${libfile} 
      done 
  fi 
done 
 
VTK_USE_FFMPEG=@VTK_USE_FFMPEG_ENCODER@ 
if [ "x$VTK_USE_FFMPEG" = "xON" ]; then 
    FFMPEG_LIB_DIR=@FFMPEG_avcodec_LIBRARY@ 
    FFMPEG_LIB_DIR=`dirname $FFMPEG_LIB_DIR` 
 
    echo "" 
    echo "Stage 1.a - Install FFMPEG libraries" 
 
    echo "FFMPEG is ON, libdir: $FFMPEG_LIB_DIR" 
    for a in ${FFMPEG_LIB_DIR}/libavcodec*dylib* ${FFMPEG_LIB_DIR}/libavformat*dylib* ${FFMPEG_LIB_DIR}/libavutil*dylib*; do 
	echo -n . 
	cp $a  paraview.app/Contents/MacOS/ 
    done 
    echo "." 
fi 
 
echo "" 
echo "Stage 2 - Fix all the remaining dylib's" 
for a in @ParaView_BINARY_DIR@/bin/*.so @ParaView_BINARY_DIR@/bin/*.dylib ${FFMPEG_LIB_DIR}/libavcodec*dylib* ${FFMPEG_LIB_DIR}/libavformat*dylib* ${FFMPEG_LIB_DIR}/libavutil*dylib*; do 
    if [ -e $a ]; then 
        echo -n . 
        file=$(basename $a) 
        for executable in ${EXECUTABLES}; do 
            install_name_tool "${executable}" -change $a @executable_path/${file} 
        done 
        for executable in ${SUB_EXECUTABLES}; do 
            install_name_tool "${executable}" -change $a @executable_path/../../../${file} 
        done 
        install_name_tool paraview.app/Contents/MacOS/${file} -id @executable_path/${file} 
         
        if [ "x$DEBUG" = "x1" ]; then 
            echo "Stage 2.a.$a" 
        fi 
        for lib in @ParaView_BINARY_DIR@/bin/*.dylib ${FFMPEG_LIB_DIR}/libavcodec*dylib* ${FFMPEG_LIB_DIR}/libavformat*dylib* ${FFMPEG_LIB_DIR}/libavutil*dylib*; do 
            libfile=$(basename ${lib}) 
            install_name_tool paraview.app/Contents/MacOS/${file} -change ${lib} @executable_path/${libfile} 
        done 
        if [ "x$DEBUG" = "x1" ]; then 
            echo "Stage 2.b.$a" 
        fi 
        for lib in ${QT_LIB_DIR}/*.dylib; do 
            libfile=$(basename ${lib}) 
            install_name_tool paraview.app/Contents/MacOS/${file} -change ${lib} @executable_path/${libfile} 
        done 
    fi 
done 
 
echo "" 
echo "Stage 3 - Fix all the Qt Frameworks" 
for a in QtCore QtGui QtNetwork QtXml QtAssistant; do 
  install_name_tool -id @executable_path/../Frameworks/$a.framework/Versions/4/$a paraview.app/Contents/Frameworks/$a.framework/Versions/4/$a 
  for executable in ${EXECUTABLES}; do 
    install_name_tool "${executable}" -change ${QT_LIB_DIR}/$a.framework/Versions/4/$a @executable_path/../Frameworks/$a.framework/Versions/4/$a 
  done 
  for executable in ${SUB_EXECUTABLES}; do 
    install_name_tool "${executable}" -change ${QT_LIB_DIR}/$a.framework/Versions/4/$a @executable_path/../../../../Frameworks/$a.framework/Versions/4/$a 
  done 
 
  if [ "x$DEBUG" = "x1" ]; then 
    echo "Stage 3.a.$a" 
  fi 
  for b in QtCore QtGui QtNetwork QtXml QtAssistant; do 
    install_name_tool -change ${QT_LIB_DIR}/$b.framework/Versions/4/$b @loader_path/../../../$b.framework/Versions/4/$b paraview.app/Contents/Frameworks/$a.framework/Versions/4/$a 
    install_name_tool -change ${QT_LIB_DIR}/$b.framework/Versions/4/$b @loader_path/../../../$b.framework/Versions/4/$b paraview.app/Contents/Frameworks/$a.framework/Versions/Current/$a 
    install_name_tool -change ${QT_LIB_DIR}/$b.framework/Versions/4/$b @loader_path/../$b.framework/Versions/4/$b paraview.app/Contents/Frameworks/$a.framework/$a 
  done 
  if [ "x$DEBUG" = "x1" ]; then 
    echo "Stage 3.b.$a" 
  fi 
  for b in $(ls paraview.app/Contents/MacOS/*.dylib); do 
    install_name_tool -change ${QT_LIB_DIR}/$a.framework/Versions/4/$a @executable_path/../Frameworks/$a.framework/Versions/4/$a $b 
  done 
done 
 
echo "Installing python libraries" 
mkdir paraview.app/Contents/Frameworks/Python.Framework 
# We are assuming that python is installed as a framework. This will fail otherwise. 
PYTHON_FRAMEWORK_ROOT=@PYTHON_INCLUDE_PATH@/.. 
if [ -e ${PYTHON_FRAMEWORK_ROOT}/Python ];  then 
    python_root=${PYTHON_FRAMEWORK_ROOT} 
elif [ -e ${PYTHON_FRAMEWORK_ROOT}/../../../Python ]; then 
    python_root=${PYTHON_FRAMEWORK_ROOT}/../../.. 
fi 
cp ${python_root}/Python paraview.app/Contents/Frameworks/Python.Framework 
chmod u+w paraview.app/Contents/Frameworks/Python.Framework/Python 
 
echo "" 
echo "Stage 4 - Fix all the Python Frameworks" 
for a in Python; do 
  lib_name=paraview.app/Contents/Frameworks/$a.framework/$a 
  if [ -e ${lib_name} ]; then 
      # Try to find the line that shows the library name. This is what we will change. 
      old_path=`otool -L ${lib_name} | grep $a | cut -f1 -d\( | grep -v :` 
      install_name_tool -id @executable_path/../Frameworks/$a.framework/$a ${lib_name} 
      for executable in ${EXECUTABLES}; do 
	  install_name_tool "${executable}" -change ${old_path}  @executable_path/../Frameworks/$a.framework/$a 
      done 
      for executable in ${SUB_EXECUTABLES}; do 
	  install_name_tool "${executable}" -change ${old_path}  @executable_path/../Frameworks/$a.framework/$a 
      done 
       
      if [ "x$DEBUG" = "x1" ]; then 
	  echo "Stage 3.a.$a" 
      fi 
      for b in $(ls paraview.app/Contents/MacOS/*.dylib); do 
	  install_name_tool -change ${old_path}  @executable_path/../Frameworks/$a.framework/$a $b 
      done 
      for b in $(ls paraview.app/Contents/MacOS/*.so); do 
	  install_name_tool -change ${old_path}  @executable_path/../Frameworks/$a.framework/$a $b 
      done 
  fi 
done 
 
echo "Remove unnecessary stuff" 
rm -rf paraview.app/Contents/Frameworks/*.framework/Versions/Current/Headers 
rm -rf paraview.app/Contents/Frameworks/*.framework/*debug* 
rm -rf paraview.app/Contents/Frameworks/*.framework/*.prl 
rm -rf paraview.app/Contents/Frameworks/*.framework/Versions/Current/*debug* 
rm -rf paraview.app/Contents/MacOS/doc/CVS