Browse Source

Merge branch 'master' of http://192.168.14.36:3000/adc_pilot/modularization

yuchuli 4 years ago
parent
commit
2a1387da46
5 changed files with 183 additions and 7 deletions
  1. 0 3
      .gitignore
  2. 7 2
      autogen.sh
  3. 6 2
      autogen_lib.sh
  4. 70 0
      build_partial.sh
  5. 100 0
      deploy.sh

+ 0 - 3
.gitignore

@@ -1,9 +1,6 @@
 # ---> Qt
 # C++ objects and libs
 
-build_partial.sh
-deploy.sh
-
 *.slo
 *.lo
 *.o

+ 7 - 2
autogen.sh

@@ -1,7 +1,12 @@
 
-#qtmake="/opt/Qt5.10.1/5.10.1/gcc_64/bin/qmake"
-#qtmake=/usr/bin/qmake
+#qt_com=$(arch)
+qt_com=`arch`
+if [ -n aarch64 ];then
 qtmake="/usr/lib/aarch64-linux-gnu/qt5/bin/qmake"
+else
+qtmake="/opt/Qt5.10.1/5.10.1/gcc_64/bin/qmake"
+fi
+
 if [ ! $qtmake ];then
 	echo -e "\e[33m qtmake not set, auto find it\e[0m"
 	qtmake=`find /opt -name "qmake" 2>/dev/null | grep 'gcc_64'`

+ 6 - 2
autogen_lib.sh

@@ -1,7 +1,11 @@
 
-#qtmake="/opt/Qt5.10.1/5.10.1/gcc_64/bin/qmake"
-#qtmake=/usr/bin/qmake
+#qt_com=$(arch)
+qt_com=`arch`
+if [ -n aarch64 ];then
 qtmake="/usr/lib/aarch64-linux-gnu/qt5/bin/qmake"
+else
+qtmake="/opt/Qt5.10.1/5.10.1/gcc_64/bin/qmake"
+fi
 MAKEOPT=-j8
 
 mkdir bin

+ 70 - 0
build_partial.sh

@@ -0,0 +1,70 @@
+#!/bin/bash
+
+#qt_com=$(arch)
+qt_com=`arch`
+if [ -n aarch64 ];then
+qtmake="/usr/lib/aarch64-linux-gnu/qt5/bin/qmake"
+else
+qtmake="/opt/Qt5.10.1/5.10.1/gcc_64/bin/qmake"
+fi
+
+check_result()
+{
+	 
+	if [ "$1" != 0 ];then
+    	echo -e "\e[33m*************************************************\e[0m"
+    	echo -e "\e[31m    Please modify build error first,Exit!\e[0m"
+    	echo -e "\e[33m*************************************************\e[0m"
+ 	   	exit 1
+    fi
+
+}
+
+module=$1
+echo -e "\e[33m module name: \e[1;33m $module \e[0m"
+
+projectDir=`pwd`
+echo -e "project folder \e[33m$projectDir\e[0m"
+
+MAKEOPT=-j8
+
+mkdir bin
+outputDir=$projectDir"/bin"
+echo -e "output folder \e[33m$outputDir\e[0m"
+
+cd src
+sourceDir=`pwd`
+echo -e "source code folder \e[33m$sourceDir\e[0m"
+
+moduleDir=`find . -type d -name $module`
+if [ $moduleDir ];then
+	moduleDir=$sourceDir${moduleDir#*.}
+	echo -e "module code folder \e[33m$moduleDir\e[0m"
+	cd $moduleDir
+	moduleName=$module".pro"
+	echo -e "\e[1;35;47m START BUILD\e[0m"
+	$qtmake $moduleName
+	make $MAKEOPT
+	check_result $? 
+	make clean
+	cp $module $outputDir
+	rm Makefile
+	rm .qmake.stash
+	rm $module
+	cd $projectDir
+	echo -e "\e[1;33;44m Build $module Success \e[0m"
+	sleep 1
+
+	echo -e "\e[35m Start deploy\e[0m"
+	cp $outputDir"/"$module ./
+	bash deploy.sh $module
+	if [ "$?" == 1 ];then
+		exit 1
+	fi
+	rm $module
+	echo -e "\e[1;33;44m Deploy $module Success \e[0m"
+
+else
+	echo -e "\e[31m Can't find module code, exit.....\e[0m"
+	exit
+fi

+ 100 - 0
deploy.sh

@@ -0,0 +1,100 @@
+#! /bin/bash
+
+
+#qt_com=$(arch)
+qt_com=`arch`
+if [ -n aarch64 ];then
+Qtgccdir='/usr/lib/aarch64-linux-gnu/qt5'
+QtPlatformdir=$Qtgccdir/plugins/platforms
+QtLibDir=/usr/lib/aarch64-linux-gnu/
+else
+Qtgccdir='/opt/Qt5.10.1/5.10.1/gcc_64'
+QtPlatformdir=$Qtgccdir/plugins/platforms
+QtLibDir=$Qtgccdir/lib
+fi
+
+
+ignore_lib_name=(
+libstdc++.so.*
+libm.so.*
+libgcc_s.so.*
+libc.so.*
+libpthread.so.*
+libGL.so.*
+libz.so.*
+libgthread*
+libglib*
+libexpat*
+libxcb*
+libdl.so.*
+libxshmfence*
+libglapi.so.*
+libXext.so.*
+libXdamage.so.*
+libXfixes.so.*
+libX11*
+libXxf86vm.so.*
+libdrm.so.*
+libpcre.so.*
+libXau.so.*
+libXdmcp.so.*
+)
+
+EXE="$1"
+PWD=`pwd`
+rm -rf app
+mkdir app
+cd app
+mkdir lib
+cd ..
+mkdir commonlib
+cd commonlib
+mkdir platforms
+cp $QtPlatformdir/libqxcb.so platforms
+cd platforms
+mkdir lib
+libfiles=`ldd libqxcb.so | awk '{ if(match($3,"^/"))printf("%s "),$3 }'` 
+cp $libfiles $PWD/lib 
+cd ..
+mkdir lib
+cp $QtLibDir/libQt5DBus.* $PWD/lib
+cp $QtLibDir/libQt5XcbQpa.* $PWD/lib
+rm -rf $PWD/platforms/lib
+cd platforms
+
+cd ..
+cd ..
+
+files=`ldd $EXE | awk '{ if(match($3,"^/"))printf("%s "),$3 }'`
+cp $files $PWD/app/lib
+cp $PWD/commonlib/lib/* $PWD/app/lib
+cp -r  $PWD/commonlib/platforms $PWD/app
+cp $EXE $PWD/app
+
+for x in ${ignore_lib_name[@]}
+do
+rm -f $PWD/app/lib/${x}
+done
+
+rm -rf commonlib
+
+cd app
+patchelf --set-rpath '$ORIGIN/lib/' $EXE
+if [ "$?" != 0 ];then
+	echo -e "\e[31m deploy.sh: patchelf $EXE faile, Ensure patchelf tool installed\e[0m"
+	exit 1
+fi
+cd platforms
+patchelf --set-rpath '$ORIGIN/../lib/' libqxcb.so
+if [ "$?" != 0 ];then
+	echo -e "\e[31m deploy.sh: patchelf $EXE faile, Ensure patchelf tool installed\e[0m"
+#	exit 1
+fi
+cd ..
+cd ..
+
+cp -r app $PWD/deploy/
+
+rm -rf app
+
+