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