1# QtAV SDK deployment tool for installer 2 3THIS=$0 4IN=$PWD 5 6help() { 7 echo "$THIS -install|-uninstall qmake_path" 8 exit 1 9} 10check_qmake() { 11 [ -n "$QMAKE" ] || { 12 echo "Input your absolute path of qmake. Make sure the major and minor version and target architecture. That path MUST have subdir bin, include, lib, mkspecs etc." 13 echo "example: $HOME/Qt5.6.0/5.6/gcc_64/bin/qmake" 14 read QMAKE 15 } 16 [ ! -d $QMAKE -a -x $QMAKE ] || { 17 echo "qmake is not available ($QMAKE)" 18 help 19 } 20 QT_INSTALL_VER=`$QMAKE -query QT_VERSION` 21 [ "$ACT" != "0" ] && return 22 echo "Checking Qt version..." 23 QTAV_MAJOR=`grep -m1 QTAV_MAJOR include/QtAV/version.h |sed 's,.*QTAV_MAJOR \([0-9]*\).*,\1,'` 24 QTAV_MAJOR=${QTAV_MAJOR:-1} 25 QT_BUILD_VER=`strings $IN/bin/libQt*AV.so.$QTAV_MAJOR |grep "Qt-.* licensee: "|sed 's,Qt-\(.*\) licensee: ,\1,'` 26 echo QT_BUILD_VER=$QT_BUILD_VER 27 #install: skip version check if QT_BUILD_VER is empty 28 if [ -n "$QT_BUILD_VER" -a "${QT_BUILD_VER:0:4}" != "${QT_INSTALL_VER:0:4}" ]; then 29 echo "Qt runtime version ($QT_INSTALL_VER) mismatches. QtAV is built with $QT_BUILD_VER" 30 echo "Major and minor version MUST be the same" 31 help 32 fi 33} 34ACT=0 #0 iinstall, 1 uninstall 35 if [ "$1" = "-install" ]; then 36 ACT=0 37 elif [ "$1" = "-uninstall" ]; then 38 ACT=1 39 elif [ "${THIS##*-}" = "install" ]; then 40 ACT=0 41 elif [ "${THIS##*-}" = "uninstall" ]; then 42 ACT=1 43 else 44 echo "Select action: 0 Install(default), 1 uninstall" 45 read ACT 46 if [ "$ACT" = "1" -o "$ACT" = "uninstall" ]; then 47 ACT=1 48 fi 49 fi 50if [ $# -gt 1 ]; then 51 QMAKE=$2 52fi 53check_qmake 54 55echo $QMAKE 56 57QT_INSTALL_BINS=`$QMAKE -query QT_INSTALL_BINS` 58QT_INSTALL_HEADERS=`$QMAKE -query QT_INSTALL_HEADERS` 59QT_INSTALL_LIBS=`$QMAKE -query QT_INSTALL_LIBS` 60QT_INSTALL_QML=`$QMAKE -query QT_INSTALL_QML` 61 62if [ "$ACT" = "1" ]; then 63 rm -rvf $QT_INSTALL_BINS/*Qt*AV* 64 rm -rvf $QT_INSTALL_HEADERS/QtAV* 65 rm -rvf $QT_INSTALL_LIBS/*Qt*AV* 66 rm -rvf $QT_INSTALL_QML/QtAV 67 rm -rvf $QT_INSTALL_BINS/../mkspecs/modules/qt_lib_av*.pri 68 rm -rvf $QT_INSTALL_BINS/../mkspecs/features/av*.prf 69 echo "QtAV uninstalled" 70 exit 0 71fi 72 73cp -avf $IN/bin/*Qt*AV*.so* $QT_INSTALL_BINS 74cp -avf $IN/include/* `$QMAKE -query QT_INSTALL_HEADERS` 75cp -avf $IN/lib/* $QT_INSTALL_LIBS 76cp -avf $IN/qml/QtAV `$QMAKE -query QT_INSTALL_QML` 77[ -d $QT_INSTALL_BINS/../mkspecs ] && cp -avf $IN/mkspecs/* $QT_INSTALL_BINS/../mkspecs || echo "Warning: mkspecs not found" 78test -f $QT_INSTALL_LIBS/libQt5AV.so || test -f $QT_INSTALL_LIBS/libQtAV.so || { 79 cd $QT_INSTALL_LIBS 80 if [ -f $QT_INSTALL_BINS/libQt5AV.so.$QTAV_MAJOR ]; then 81 ln -sf $QT_INSTALL_BINS/libQt5AV.so.$QTAV_MAJOR libQt5AV.so 82 ln -sf $QT_INSTALL_BINS/libQt5AVWidgets.so.$QTAV_MAJOR libQt5AVWidgets.so 83 elif [ -f $QT_INSTALL_BINS/libQtAV.so.$QTAV_MAJOR ]; then 84 ln -sf $QT_INSTALL_BINS/libQtAV.so.$QTAV_MAJOR libQtAV.so 85 ln -sf $QT_INSTALL_BINS/libQtAVWidgets.so.$QTAV_MAJOR libQtAVWidgets.so 86 fi 87 cd - 88} 89 90echo "QtAV installed" 91