1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/Mr-John-qt5-static

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
makeinstall 9.2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
JohnYork Отправлено 15.05.2015 01:18 bc9a923
DEBUG_OR_RELEASE=
SHARED_OR_STATIC=
DEV_BUILD=
J_PARAM=
DUPLICATE_OPTION=
UNKNOWN_OPTION=
ERROR_OPTION=
BAD_J_PARAM=
DONT_INSTALL=no
COPYSYSTEMDLLS_ONLY=no
GO_EXIT=
while [ "$#" -gt 0 ]; do
case "$1" in
-h)
echo Available options are :
echo
echo -debug / -release : must be specified ANY and ONLY ONE of them
echo -shared / -static : must be specified ANY and ONLY ONE of them
echo -j "<n>" : n = 1,2,...,8 , n must be specified with -j
echo -noinstall : just compile, don\'t install binary to target path
echo -copysysdlls-only : only copy dependent system dlls.
echo
GO_EXIT=yes
;;
-debug|-release)
if [ "$DEBUG_OR_RELEASE" != "-debug" ] && [ "$DEBUG_OR_RELEASE" != "-release" ]; then
DEBUG_OR_RELEASE=$1
else
DUPLICATE_OPTION=$1
fi
;;
-shared|-static)
if [ -z "$SHARED_OR_STATIC" ]; then
SHARED_OR_STATIC=$1
else
DUPLICATE_OPTION=$1
SHARED_OR_STATIC=bad
fi
;;
-developer-build)
if [ -z "$DEV_BUILD" ]; then
DEV_BUILD="$1"
else
DUPLICATE_OPTION=$1
DEV_BUILD=bad
fi
;;
-j*)
if [ -z "$J_PARAM" ]; then
J_PARAM=`echo $1 | sed 's,^-j\(.*\),\1,'`
if [ -z "$J_PARAM" ]; then
if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
J_PARAM=
else
J_PARAM=$2
shift
fi
fi
if [ -z "$J_PARAM" ]; then
BAD_J_PARAM="[missed]"
else
case "$J_PARAM" in
[12345678])
J_PARAM="-j $J_PARAM"
;;
*)
BAD_J_PARAM=$J_PARAM
;;
esac
fi
# if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
# BAD_J_PARAM="[missed]"
# else
# case "$2" in
# [12345678])
# J_PARAM="-j $2"
# ;;
# *)
# BAD_J_PARAM=$2
# ;;
# esac
# shift
# fi
else
DUPLICATE_OPTION=$1
fi
;;
-noinstall)
DONT_INSTALL=yes
;;
-copysysdlls-only)
COPYSYSTEMDLLS_ONLY=yes
;;
*)
UNKNOWN_OPTION=$1
;;
esac
shift
done
if [ "$GO_EXIT" = "yes" ]; then
exit 0
fi
if [ "x$UNKNOWN_OPTION" != "x" ]; then
echo ERROR : Unknown option specified : $UNKNOWN_OPTION
ERROR_OPTION=yes
fi
#if [ -z "$DUPLICATE_OPTION" ]; then
if [ "x$DUPLICATE_OPTION" != "x" ]; then
echo ERROR : Duplicated option specified : $DUPLICATE_OPTION
ERROR_OPTION=yes
fi
if [ "x$BAD_J_PARAM" != "x" ]; then
echo ERROR : parameter of option -j is bad : $BAD_J_PARAM
ERROR_OPTION=yes
fi
if [ "$COPYSYSTEMDLLS_ONLY" != "yes" ]; then
if [ "$DEBUG_OR_RELEASE" != "-debug" ] && [ "$DEBUG_OR_RELEASE" != "-release" ]; then
echo ERROR : -debug or -release option missed !
ERROR_OPTION=yes
fi
if [ -z "$SHARED_OR_STATIC" ]; then
echo ERROR : -shared or -static option missed !
ERROR_OPTION=yes
fi
if [ "x$ERROR_OPTION" = "xyes" ]; then
echo use '-h' option for help
exit 1
fi
unset ERROR_OPTION BAD_J_PARAM DUPLICATE_OPTION
QT_CONFIG_OPTION="$DEBUG_OR_RELEASE $SHARED_OR_STATIC"
if [ "$DEBUG_OR_RELEASE" = "-debug" ]; then
QT_MAKE_TOOLS="-nomake tools"
else
QT_MAKE_TOOLS="-make tools"
QT_CONFIG_OPTION="$QT_CONFIG_OPTION -strip"
fi
unset DEBUG_OR_RELEASE GO_EXIT UNKNOWN_OPTION DUPLICATE_OPTION BAD_J_PARAM
# for debug purpose
#echo QT_CONFIG_OPTION= $QT_CONFIG_OPTION
#echo J_PARAM= $J_PARAM
#echo DONT_INSTALL= $DONT_INSTALL
#echo DEV_BUILD= $DEV_BUILD
#exit 0
fi
if [ -n "$MSYSTEMTYPE" ]
then
case "$MSYSTEMTYPE" in
MGW32)
QT_BIN_DIR=/D/Qt/Qt5.4.1/5.4/mingw492_32/bin
QT_INSTALL_DIR=/D/Qt/Qt5.4.1/5.4/mingw492_32
;;
MGW64)
QT_BIN_DIR=/D/Qt/Qt5.4.1/5.4/mingw492_64/bin
QT_INSTALL_DIR=/D/Qt/Qt5.4.1/5.4/mingw492_64
;;
*)
echo Unknown MSYSTEMTYPE ! compilation can not continue!
exit 1
;;
esac
else
echo MSYSTEMTYPE not set ! compilation can not continue!
exit 1
fi
if [ "$SHARED_OR_STATIC" = "-static" ]; then
QT_INSTALL_DIR="$QT_INSTALL_DIR"sll
QT_CONFIG_OPTION="$QT_CONFIG_OPTION -fontconfig -system-freetype -openssl-linked -dbus-linked -qt-sql-sqlite -system-sqlite -qt-sql-odbc"
else
QT_INSTALL_DIR="$QT_INSTALL_DIR"dll
QT_CONFIG_OPTION="$QT_CONFIG_OPTION -fontconfig -system-freetype -openssl -dbus -plugin-sql-sqlite -system-sqlite -plugin-sql-odbc"
fi
if [ "$COPYSYSTEMDLLS_ONLY" != "yes" ]; then
if [ "$SHARED_OR_STATIC" = "-static" ]; then
cp -f ../qmake.conf qtbase/mkspecs/win32-g++
fi
# compile Qt
echo
echo Compiling Qt ...
echo
./configure -platform win32-g++ $QT_CONFIG_OPTION $DEV_BUILD -no-reduce-exports -opensource -confirm-license -c++11 -system-harfbuzz -largefile -optimized-qmake -accessibility -gui -widgets -icu -opengl desktop -egl -no-eglfs -mtdev -alsa -no-gtkstyle -force-pkg-config -make libs $QT_MAKE_TOOLS -nomake examples -no-compile-examples -prefix "$QT_INSTALL_DIR" -silent
if [ "$?" != "0" ]; then
exit $?
fi
make $J_PARAM
if [ "$?" != "0" ]; then
exit $?
fi
fi
if [ "x$DONT_INSTALL" != "xyes" ]; then
if [ "$COPYSYSTEMDLLS_ONLY" != "yes" ]; then
echo
echo Now begin installing products ...
echo
make install -s $J_PARAM
if [ "$?" != "0" ]; then
exit $?
fi
fi
if [ "$SHARED_OR_STATIC" = "-shared" ] || [ "$COPYSYSTEMDLLS_ONLY" = "yes" ]; then
echo
echo copy dependent-dlls from system...
QT_LIB_DIR=$QT_INSTALL_DIR/lib
QT_BIN_DIR=$QT_INSTALL_DIR/bin
PKGCONFIG_PCDIR=$QT_INSTALL_DIR/lib/pkgconfig
PKG_CONFIG_PATH=$PKGCONFIG_PCDIR:$PKG_CONFIG_PATH
SYSTEM_ROOT_PATH=D:/MSYS2/MSYS64/usr
case "$MSYSTEM" in
MINGW64)
SYSTEM_ROOT_PATH=D:/MSYS2/MSYS64/mingw64
;;
MINGW32)
SYSTEM_ROOT_PATH=D:/MSYS2/MSYS64/mingw32
;;
MSYS)
if [ -z "$MSYSTEMTYPE" ]; then
SYSTEM_ROOT_PATH=D:/MSYS2/MSYS64/usr
else
case "$MSYSTEMTYPE" in
MGW64)
SYSTEM_ROOT_PATH=D:/MSYS2/MSYS64/mingw64
;;
MGW32)
SYSTEM_ROOT_PATH=D:/MSYS2/MSYS64/mingw32
;;
*)
SYSTEM_ROOT_PATH=D:/MSYS2/MSYS64/usr
;;
esac
fi
;;
*)
echo unsupported system : $MSYSTEM
exit 101
;;
esac
SYSTEM_DLL_PATH=$SYSTEM_ROOT_PATH/bin
SYSTEM_LIB_PATH=$SYSTEM_ROOT_PATH/lib
# echo DEBUG : QT_LIB_DIR = $QT_LIB_DIR
# echo DEBUG : QT_BIN_DIR = $QT_BIN_DIR
# echo DEBUG : PKGCONFIG_PCDIR = $PKGCONFIG_PCDIR
# echo DEBUG : SYSTEM_ROOT_PATH = $SYSTEM_ROOT_PATH
# exit 0
cp -f $SYSTEM_DLL_PATH/libgcc_s*.dll $QT_BIN_DIR
cp -f $SYSTEM_DLL_PATH/libstdc++*.dll $QT_BIN_DIR
cp -f $SYSTEM_DLL_PATH/libwinpthread*.dll $QT_BIN_DIR
pcfiles=`ls $PKGCONFIG_PCDIR/*.pc`
pclibs=`pkg-config --libs --static bzip2 fontconfig harfbuzz sqlite3 dbus-1 $pcfiles`
tmplibs=$pclibs
uniqlibs=
for cc in ${pclibs}; do
tmplibs=${tmplibs#*$cc}
isuniqlib=no
case "$cc" in
-l*)
duplicated=no
for dd in ${tmplibs}; do
if [ "$cc" = "$dd" ]; then
duplicated=yes
break
fi
done
if [ "$duplicated" = "no" ]; then
isuniqlib=yes
fi
;;
esac
if [ "$isuniqlib" = "yes" ]; then
if [ -z "$uniqlibs" ]; then
uniqlibs=$cc
else
uniqlibs="$uniqlibs $cc"
fi
fi
done
for libf in ${uniqlibs}; do
case "$libf" in
-l*)
libf=`echo "$libf" | sed 's,-l\B,,gi'`
dllname=`(find $SYSTEM_LIB_PATH -iname "lib$libf.dll.a" | xargs dlltool -I) 2>/dev/null`
if [ "$?" = "0" ]; then
cp -f $SYSTEM_DLL_PATH/$dllname $QT_BIN_DIR
echo found and copied $dllname .
fi
;;
esac
done
fi
fi
echo
echo Completed .

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/Mr-John-qt5-static.git
git@api.gitlife.ru:oschina-mirror/Mr-John-qt5-static.git
oschina-mirror
Mr-John-qt5-static
Mr-John-qt5-static
master