.travis_linux.sh 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #!/bin/bash
  2. project_dir=$(pwd)
  3. # Install qt5.9
  4. sudo add-apt-repository ppa:george-edison55/cmake-3.x -y
  5. sudo add-apt-repository ppa:beineri/opt-qt596-trusty -y
  6. sudo apt-get update -qq
  7. sudo apt-get -y install qt59base qt59webengine qt59webchannel qt59svg qt59location qt59tools qt59translations
  8. source /opt/qt*/bin/qt*-env.sh
  9. # Compile newer version fcitx-qt5
  10. sudo apt-get -y install fcitx-libs-dev libgl1-mesa-dev bison
  11. sudo apt-get -y install cmake
  12. wget http://xkbcommon.org/download/libxkbcommon-0.5.0.tar.xz
  13. tar xf libxkbcommon-0.5.0.tar.xz
  14. cd libxkbcommon-0.5.0
  15. ./configure -prefix=/usr -libdir=/usr/lib/x86_64-linux-gnu -disable-x11
  16. make -j$(nproc) && sudo make install
  17. git clone git://anongit.kde.org/extra-cmake-modules
  18. cd extra-cmake-modules
  19. mkdir build && cd build
  20. cmake ..
  21. make -j$(nproc) && sudo make install
  22. git clone https://github.com/fcitx/fcitx-qt5
  23. cd fcitx-qt5
  24. git checkout 1.0.5
  25. cmake .
  26. make -j$(nproc) && sudo make install
  27. # Copy fcitx-qt5 files to qt
  28. sudo cp /usr/local/lib/libFcitxQt5DBusAddons.so* /opt/qt*/lib/
  29. sudo cp /usr/local/lib/libFcitxQt5WidgetsAddons.so* /opt/qt*/lib/
  30. tree /opt/qt59/lib/
  31. cd ${project_dir}
  32. mkdir build
  33. cd build
  34. qmake -v
  35. qmake CONFIG+=release -spec linux-g++-64 ../VNote.pro
  36. make -j$(nproc)
  37. #
  38. # Pack AppImage using linuxdeployqt
  39. #
  40. mkdir dist
  41. INSTALL_ROOT=${project_dir}/build/dist make install ; tree dist/
  42. # Copy SVG module
  43. mkdir -p ./dist/usr/plugins/iconengines
  44. mkdir -p ./dist/usr/plugins/imageformats
  45. mkdir -p ./dist/usr/plugins/platforminputcontexts
  46. cp /opt/qt59/plugins/iconengines/* ./dist/usr/plugins/iconengines/
  47. cp /opt/qt59/plugins/imageformats/* ./dist/usr/plugins/imageformats/
  48. cp /opt/qt59/plugins/platforminputcontexts/* ./dist/usr/plugins/platforminputcontexts/
  49. # Copy other project files
  50. cp "${project_dir}/README.md" "dist/README.md"
  51. cp "${project_dir}/LICENSE" "dist/LICENSE"
  52. echo ${version} > ./dist/version
  53. echo "${TRAVIS_COMMIT}" >> ./dist/version
  54. # Get linuxdeployqt tool
  55. git clone https://github.com/tamlok/vnote-utils.git vnote-utils.git
  56. cp vnote-utils.git/linuxdeployqt-continuous-x86_64.AppImage ./linuxdeployqt-continuous-x86_64.AppImage
  57. # wget -c "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage"
  58. chmod a+x linuxdeployqt*.AppImage
  59. unset QTDIR; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH
  60. ./linuxdeployqt*.AppImage ./dist/usr/share/applications/*.desktop -bundle-non-qt-libs -exclude-libs=libnss3,libnssutil3
  61. # Copy translations
  62. cp /opt/qt59/translations/*_zh_CN.qm ./dist/usr/translations/
  63. # Package it for the second time.
  64. ./linuxdeployqt*.AppImage ./dist/usr/share/applications/*.desktop -appimage -exclude-libs=libnss3,libnssutil3
  65. tree dist/
  66. ls -l *.AppImage
  67. mv VNote-*.AppImage VNote-${version}-x86_64.AppImage
  68. cd ..
  69. exit 0