deploy.sh 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. #! /bin/bash
  2. #Qtgccdir=''
  3. Qtgccdir='/usr/lib/aarch64-linux-gnu/qt5'
  4. QtLibDir=/usr/lib/aarch64-linux-gnu/
  5. QtPlatformdir=$Qtgccdir/plugins/platforms
  6. #QtLibDir=$Qtgccdir/lib
  7. ignore_lib_name=(
  8. libstdc++.so.*
  9. libm.so.*
  10. libgcc_s.so.*
  11. libc.so.*
  12. libpthread.so.*
  13. libGL.so.*
  14. libz.so.*
  15. libgthread*
  16. libglib*
  17. libexpat*
  18. libxcb*
  19. libdl.so.*
  20. libxshmfence*
  21. libglapi.so.*
  22. libXext.so.*
  23. libXdamage.so.*
  24. libXfixes.so.*
  25. libX11*
  26. libXxf86vm.so.*
  27. libdrm.so.*
  28. libpcre.so.*
  29. libXau.so.*
  30. libXdmcp.so.*
  31. )
  32. EXE="$1"
  33. PWD=`pwd`
  34. rm -rf app
  35. mkdir app
  36. cd app
  37. mkdir lib
  38. cd ..
  39. mkdir commonlib
  40. cd commonlib
  41. mkdir platforms
  42. cp $QtPlatformdir/libqxcb.so platforms
  43. cd platforms
  44. mkdir lib
  45. libfiles=`ldd libqxcb.so | awk '{ if(match($3,"^/"))printf("%s "),$3 }'`
  46. cp $libfiles $PWD/lib
  47. cd ..
  48. mkdir lib
  49. cp $QtLibDir/libQt5DBus.* $PWD/lib
  50. cp $QtLibDir/libQt5XcbQpa.* $PWD/lib
  51. rm -rf $PWD/platforms/lib
  52. cd platforms
  53. cd ..
  54. cd ..
  55. files=`ldd $EXE | awk '{ if(match($3,"^/"))printf("%s "),$3 }'`
  56. cp $files $PWD/app/lib
  57. cp $PWD/commonlib/lib/* $PWD/app/lib
  58. cp -r $PWD/commonlib/platforms $PWD/app
  59. cp $EXE $PWD/app
  60. for x in ${ignore_lib_name[@]}
  61. do
  62. rm -f $PWD/app/lib/${x}
  63. done
  64. rm -rf commonlib
  65. cd app
  66. patchelf --set-rpath '$ORIGIN/lib/' $EXE
  67. if [ "$?" != 0 ];then
  68. echo -e "\e[31m deploy.sh: patchelf $EXE faile, Ensure patchelf tool installed\e[0m"
  69. exit 1
  70. fi
  71. cd platforms
  72. patchelf --set-rpath '$ORIGIN/../lib/' libqxcb.so
  73. if [ "$?" != 0 ];then
  74. echo -e "\e[31m deploy.sh: patchelf $EXE faile, Ensure patchelf tool installed\e[0m"
  75. # exit 1
  76. fi
  77. cd ..
  78. cd ..
  79. cp -r app $PWD/deploy/
  80. rm -rf app