mirror of
https://gitee.com/vnotex/vnote.git
synced 2025-07-04 21:39:52 +08:00
103 lines
3.3 KiB
Bash
103 lines
3.3 KiB
Bash
#!/bin/bash
|
|
project_dir=$(pwd)
|
|
|
|
# Complain when not in Travis environment
|
|
if [ -z ${TRAVIS_COMMIT+x} ]; then
|
|
echo "This script is intended to be used only in Travis CI environment."
|
|
echo "To build VNote from source, please see the [documentation](https://tamlok.github.io/vnote/en_us/#!docs/Developers/Build%20VNote.md)."
|
|
exit 1
|
|
fi
|
|
|
|
# Install qt5.9
|
|
sudo add-apt-repository ppa:george-edison55/cmake-3.x -y
|
|
sudo add-apt-repository ppa:beineri/opt-qt597-trusty -y
|
|
sudo apt-get update -qq
|
|
sudo apt-get -y install qt59base qt59webengine qt59webchannel qt59svg qt59location qt59tools qt59translations
|
|
source /opt/qt*/bin/qt*-env.sh
|
|
|
|
# Compile qt5ct
|
|
wget -c https://excellmedia.dl.sourceforge.net/project/qt5ct/qt5ct-0.37.tar.bz2
|
|
tar xf qt5ct-0.*.tar.bz2
|
|
cd qt5ct-0.*/
|
|
QT_SELECT=5 qmake
|
|
make -j$(nproc) && sudo make install
|
|
|
|
# Compile newer version fcitx-qt5
|
|
sudo apt-get -y install fcitx-libs-dev libgl1-mesa-dev bison
|
|
sudo apt-get -y install cmake
|
|
|
|
wget http://xkbcommon.org/download/libxkbcommon-0.5.0.tar.xz
|
|
tar xf libxkbcommon-0.5.0.tar.xz
|
|
cd libxkbcommon-0.5.0
|
|
./configure -prefix=/usr -libdir=/usr/lib/x86_64-linux-gnu -disable-x11
|
|
make -j$(nproc) && sudo make install
|
|
|
|
git clone git://anongit.kde.org/extra-cmake-modules
|
|
cd extra-cmake-modules
|
|
mkdir build && cd build
|
|
cmake ..
|
|
make -j$(nproc) && sudo make install
|
|
|
|
git clone https://github.com/fcitx/fcitx-qt5
|
|
cd fcitx-qt5
|
|
git checkout 1.0.5
|
|
cmake .
|
|
make -j$(nproc) && sudo make install
|
|
|
|
# Copy fcitx-qt5 files to qt
|
|
sudo cp /usr/local/lib/libFcitxQt5DBusAddons.so* /opt/qt*/lib/
|
|
sudo cp /usr/local/lib/libFcitxQt5WidgetsAddons.so* /opt/qt*/lib/
|
|
|
|
tree /opt/qt59/lib/
|
|
|
|
cd ${project_dir}
|
|
mkdir build
|
|
cd build
|
|
qmake -v
|
|
qmake CONFIG+=release -spec linux-g++-64 ../VNote.pro
|
|
make -j$(nproc)
|
|
|
|
#
|
|
# Pack AppImage using linuxdeployqt
|
|
#
|
|
mkdir dist
|
|
INSTALL_ROOT=${project_dir}/build/dist make install ; tree dist/
|
|
|
|
# Copy SVG module
|
|
mkdir -p ./dist/usr/plugins/iconengines
|
|
mkdir -p ./dist/usr/plugins/imageformats
|
|
mkdir -p ./dist/usr/plugins/platforminputcontexts
|
|
cp /opt/qt59/plugins/iconengines/* ./dist/usr/plugins/iconengines/
|
|
cp /opt/qt59/plugins/imageformats/* ./dist/usr/plugins/imageformats/
|
|
cp /opt/qt59/plugins/platforminputcontexts/* ./dist/usr/plugins/platforminputcontexts/
|
|
|
|
# Copy other project files
|
|
cp "${project_dir}/README.md" "dist/README.md"
|
|
cp "${project_dir}/LICENSE" "dist/LICENSE"
|
|
echo ${version} > ./dist/version
|
|
echo "${TRAVIS_COMMIT}" >> ./dist/version
|
|
|
|
# Get linuxdeployqt tool
|
|
git clone https://github.com/tamlok/vnote-utils.git vnote-utils.git
|
|
cp vnote-utils.git/linuxdeployqt-continuous-x86_64.AppImage ./linuxdeployqt-continuous-x86_64.AppImage
|
|
# wget -c "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage"
|
|
chmod a+x linuxdeployqt*.AppImage
|
|
unset QTDIR; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH
|
|
./linuxdeployqt*.AppImage ./dist/usr/share/applications/*.desktop -bundle-non-qt-libs -exclude-libs=libnss3,libnssutil3 -extra-plugins=platformthemes/libqt5ct.so,styles/libqt5ct-style.so
|
|
|
|
# Copy translations
|
|
cp /opt/qt59/translations/*_zh_CN.qm ./dist/usr/translations/
|
|
|
|
# Package it for the second time.
|
|
./linuxdeployqt*.AppImage ./dist/usr/share/applications/*.desktop -appimage -exclude-libs=libnss3,libnssutil3 -extra-plugins=platformthemes/libqt5ct.so,styles/libqt5ct-style.so
|
|
|
|
tree dist/
|
|
|
|
ls -l *.AppImage
|
|
|
|
mv VNote-*.AppImage VNote-${version}-x86_64.AppImage
|
|
|
|
cd ..
|
|
|
|
exit 0
|