qzxing/ci/build-install-tools.sh

194 lines
6.1 KiB
Bash

#!/bin/bash
#Author: Kang Lin(kl222@126.com)
set -e
SOURCE_DIR="`pwd`"
echo $SOURCE_DIR
TOOLS_DIR=${SOURCE_DIR}/Tools
PACKAGE_DIR=${SOURCE_DIR}/Package
ThirdLibs_DIR=${TOOLS_DIR}/ThirdLibs
if [ ! -d "${TOOLS_DIR}" ]; then
mkdir ${TOOLS_DIR}
fi
if [ ! -d "$PACKAGE_DIR" ]; then
mkdir -p $PACKAGE_DIR
fi
function function_common()
{
cd ${TOOLS_DIR}
# See: https://github.com/benlau/qtci
cd ${TOOLS_DIR}
if [ "$DOWNLOAD_QT" = "TRUE" ]; then
QT_DIR=`pwd`/Qt/${QT_VERSION}
cd ${PACKAGE_DIR}
if [ ! -d "${QT_DIR}" ]; then
if [ "${QT_VERSION}" = "5.6.3" ]; then
if [ ! -f qt-opensource-linux-x64-android-${QT_VERSION}.run ]; then
wget -c --no-check-certificate -nv http://download.qt.io/official_releases/qt/${QT_VERSION_DIR}/${QT_VERSION}/qt-opensource-linux-x64-android-${QT_VERSION}.run
fi
bash ${SOURCE_DIR}/ci/qt-installer.sh qt-opensource-linux-x64-android-${QT_VERSION}.run ${QT_DIR}
#rm qt-opensource-linux-x64-android-${QT_VERSION}.run
else
if [ ! -f qt-opensource-linux-x64-${QT_VERSION}.run ]; then
wget -c --no-check-certificate -nv http://download.qt.io/official_releases/qt/${QT_VERSION_DIR}/${QT_VERSION}/qt-opensource-linux-x64-${QT_VERSION}.run
fi
bash ${SOURCE_DIR}/ci/qt-installer.sh qt-opensource-linux-x64-${QT_VERSION}.run ${QT_DIR}
#rm qt-opensource-linux-x64-${QT_VERSION}.run
fi
fi
fi
cd ${SOURCE_DIR}
}
function install_android()
{
if [ -n "$1" ]; then
NDK="ndk-bundle"
fi
cd ${TOOLS_DIR}
if [ ! -d "`pwd`/android-sdk" ]; then
cd ${PACKAGE_DIR}
ANDROID_STUDIO_VERSION=191.5900203
if [ ! -f android-studio-ide-${ANDROID_STUDIO_VERSION}-linux.tar.gz ]; then
wget -c -nv https://dl.google.com/dl/android/studio/ide-zips/3.5.1.0/android-studio-ide-${ANDROID_STUDIO_VERSION}-linux.tar.gz
fi
tar xzf android-studio-ide-${ANDROID_STUDIO_VERSION}-linux.tar.gz -C ${TOOLS_DIR}
cd ${TOOLS_DIR}
export JAVA_HOME=`pwd`/android-studio/jre
export PATH=${JAVA_HOME}/bin:$PATH
cd ${PACKAGE_DIR}
SDK_PACKAGE=sdk-tools-linux-4333796.zip
if [ ! -f ${SDK_PACKAGE} ]; then
wget -c -nv https://dl.google.com/android/repository/${SDK_PACKAGE}
fi
cd ${TOOLS_DIR}
mkdir android-sdk
cd android-sdk
unzip -q ${PACKAGE_DIR}/${SDK_PACKAGE} -d `pwd`
echo "Install sdk and ndk ......"
if [ -n "${ANDROID_API}" ]; then
PLATFORMS="platforms;${ANDROID_API}"
else
PLATFORMS="platforms"
fi
if [ -z "${BUILD_TOOS_VERSION}" ]; then
BUILD_TOOS_VERSION="28.0.3"
fi
(sleep 5 ; num=0 ; while [ $num -le 5 ] ; do sleep 1 ; num=$(($num+1)) ; printf 'y\r\n' ; done ) \
| ./tools/bin/sdkmanager "platform-tools" "build-tools;${BUILD_TOOS_VERSION}" "${PLATFORMS}" ${NDK}
if [ -n "${NDK}" ]; then
if [ ! -d ${TOOLS_DIR}/android-ndk ]; then
ln -s ${TOOLS_DIR}/android-sdk/ndk-bundle ${TOOLS_DIR}/android-ndk
fi
fi
fi
}
function install_android_sdk_and_ndk()
{
install_android
NDK_PACKAGE=android-ndk-r21-linux-x86_64.zip
cd ${PACKAGE_DIR}
if [ ! -f ${NDK_PACKAGE} ]; then
wget -c -nv https://dl.google.com/android/repository/${NDK_PACKAGE}
fi
unzip -q ${NDK_PACKAGE} -d ${TOOLS_DIR}
cd ${TOOLS_DIR}
mv android-ndk-r21 android-ndk
}
function function_android()
{
cd ${TOOLS_DIR}
sudo apt-get update -y -qq
#sudo apt-get install -qq -y openjdk-11-jdk
# install oracle jdk
#sudo add-apt-repository ppa:linuxuprising/java -y
#sudo apt update
#(sleep 5 ; while true ; do sleep 1 ; printf '\r\n' ; done ) | sudo apt install oracle-java11-installer -qq -y
#sudo apt install oracle-java11-set-default -qq -y
#sudo apt-get install ant -qq -y
sudo apt-get install libicu-dev -qq -y
sudo apt-get install -qq -y libxkbcommon-x11-dev libglu1-mesa-dev
install_android_sdk_and_ndk
function_common
cd ${SOURCE_DIR}
}
function function_unix()
{
if [ "$DOWNLOAD_QT" != "TRUE" -a "$DOWNLOAD_QT" != "APT" ]; then
#See: https://launchpad.net/~beineri
sudo add-apt-repository ppa:beineri/opt-qt-${QT_VERSION}-`lsb_release -c|awk '{print $2}'` -y
fi
sudo apt-get update -y -qq
sudo apt-get install debhelper fakeroot -y -qq
sudo apt-get install -y -qq libglu1-mesa-dev \
libxkbcommon-x11-dev \
libpulse-mainloop-glib0 \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
gstreamer1.0-pulseaudio \
libmysql-cil-dev libmysql-cil-dev libmysql-ocaml-dev \
libmysql++-dev libmysqld-dev libmysqlcppconn-dev \
libmysqlclient-dev \
libodbc1
if [ "$DOWNLOAD_QT" = "APT" ]; then
sudo apt-get install -y -qq qttools5-dev qttools5-dev-tools \
qtbase5-dev qtbase5-dev-tools \
qtmultimedia5-dev \
qtquickcontrols2-5-dev \
qtdeclarative5-dev \
libqt5svg5-dev
sudo ln -s /usr/lib/`uname -m`-linux-gnu/cmake /usr/lib/`uname -m`-linux-gnu/qt5/cmake
elif [ "$DOWNLOAD_QT" != "TRUE" ]; then
sudo apt-get install -y -qq qt${QT_VERSION_DIR}base \
qt${QT_VERSION_DIR}tools \
qt${QT_VERSION_DIR}multimedia \
qt${QT_VERSION_DIR}svg \
qt${QT_VERSION_DIR}quickcontrols2 \
qt${QT_VERSION_DIR}declarative
fi
function_common
cd ${SOURCE_DIR}
}
function function_mingw()
{
cd ${SOURCE_DIR}
if [ "true" == "$RABBITIM_BUILD_THIRDLIBRARY" ]; then
export RABBITIM_BUILD_CROSS_HOST=i686-w64-mingw32 #i586-mingw32msvc
fi
function_common
cd ${SOURCE_DIR}
}
case ${BUILD_TARGERT} in
android)
function_android
;;
unix)
function_unix
;;
windows_mingw)
function_mingw
;;
*)
echo "There aren't ${BUILD_TARGERT}"
;;
esac
cd ${SOURCE_DIR}