deploy.sh 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. #! /bin/bash
  2. Qtgccdir=''
  3. #Qtgccdir='/usr/lib/aarch64-linux-gnu/qt5'
  4. #QtLibDir=/usr/lib/aarch64-linux-gnu/
  5. if [ ${#Qtgccdir} -lt 6 ]; then
  6. echo "Because not set gcc_64 , so auto find gcc_64 "
  7. optfiles=`find /opt -name 'gcc_64'`
  8. for entry in $optfiles
  9. do
  10. if [ ${entry:0-6:6} == "gcc_64" ]; then
  11. if [ -d $entry ]; then
  12. Qtgccdir="$entry"
  13. echo -e "\033[32m"" -----found gccdir:"$Qtgccdir"\033[0m"
  14. fi
  15. fi
  16. done
  17. fi
  18. if [ ${#Qtgccdir} -lt 6 ]; then
  19. if [ -d '/usr/lib/aarch64-linux-gnu/qt5' ]; then
  20. Qtgccdir='/usr/lib/aarch64-linux-gnu/qt5'
  21. else
  22. echo "if NVIDIA,please sudo apt install qt"
  23. fi
  24. fi
  25. if [ ${#Qtgccdir} -lt 6 ]; then
  26. echo -e "\033[31m"" -----not found gccdir: so exit""\033[0m"
  27. exit 1
  28. fi
  29. if [ "$#" -lt 1 ]; then
  30. echo "没有输入"
  31. echo "$1"
  32. exit
  33. fi
  34. QtPlatformdir=$Qtgccdir/plugins/platforms
  35. QtLibDir=$Qtgccdir/lib
  36. ignore_lib_name=(
  37. libstdc++.so.*
  38. libm.so.*
  39. libgcc_s.so.*
  40. libc.so.*
  41. libpthread.so.*
  42. libGL.so.*
  43. libz.so.*
  44. libgthread*
  45. libglib*
  46. libexpat*
  47. libxcb*
  48. libdl.so.*
  49. libxshmfence*
  50. libglapi.so.*
  51. libXext.so.*
  52. libXdamage.so.*
  53. libXfixes.so.*
  54. libX11*
  55. libXxf86vm.so.*
  56. libdrm.so.*
  57. libpcre.so.*
  58. libXau.so.*
  59. libXdmcp.so.*
  60. )
  61. EXE="$1"
  62. PWD=`pwd`
  63. rm -rf app
  64. mkdir app
  65. cd app
  66. mkdir lib
  67. cd ..
  68. mkdir commonlib
  69. cd commonlib
  70. mkdir platforms
  71. cp $QtPlatformdir/libqxcb.so platforms
  72. cd platforms
  73. mkdir lib
  74. libfiles=`ldd libqxcb.so | awk '{ if(match($3,"^/"))printf("%s "),$3 }'`
  75. cp $libfiles $PWD/lib
  76. cd ..
  77. mkdir lib
  78. cp $QtLibDir/libQt5DBus.* $PWD/lib
  79. cp $QtLibDir/libQt5XcbQpa.* $PWD/lib
  80. rm -rf $PWD/platforms/lib
  81. cd platforms
  82. cd ..
  83. cd ..
  84. files=`ldd $EXE | awk '{ if(match($3,"^/"))printf("%s "),$3 }'`
  85. cp $files $PWD/app/lib
  86. cp $PWD/commonlib/lib/* $PWD/app/lib
  87. cp -r $PWD/commonlib/platforms $PWD/app
  88. cp $EXE $PWD/app
  89. for x in ${ignore_lib_name[@]}
  90. do
  91. rm -f $PWD/app/lib/${x}
  92. done
  93. rm -rf commonlib
  94. cd app
  95. patchelf --set-rpath '$ORIGIN/lib/' $EXE
  96. if [ "$?" != 0 ];then
  97. echo -e "\e[31m deploy.sh: patchelf $EXE faile, Ensure patchelf tool installed\e[0m"
  98. exit 1
  99. fi
  100. cd platforms
  101. patchelf --set-rpath '$ORIGIN/../lib/' libqxcb.so
  102. if [ "$?" != 0 ];then
  103. echo -e "\e[31m deploy.sh: patchelf $EXE faile, Ensure patchelf tool installed\e[0m"
  104. # exit 1
  105. fi
  106. cd ..
  107. cd ..
  108. cp -r app $PWD/deploy/
  109. rm -rf app