.travis_linux.sh 3.0 KB

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