qt.sh 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #!/bin/bash
  2. # Build Qt
  3. set -e
  4. OPTIONS=""
  5. for var in "$@"
  6. do
  7. if [ $var == "release" ]; then
  8. OPTIONS+="-DBUILD_SHARED_LIBS=OFF "
  9. fi
  10. if [ $var == "win-cross" ]; then
  11. OPTIONS+="-DCMAKE_TOOLCHAIN_FILE=../../../toolchain-mingw-w64.cmake -DBUILD_qtwayland=OFF "
  12. fi
  13. done
  14. CORES=$(getconf _NPROCESSORS_ONLN)
  15. JOBS=$(($CORES-1))
  16. BASEDIR=$PWD/thirdparty/qt
  17. DEPLOYDIR=$BASEDIR/install
  18. QT_MAJOR=6
  19. QT_MINOR=1
  20. QT_BUGFIX=0
  21. UNAME_OUT="$(uname -s)"
  22. case "${UNAME_OUT}" in
  23. Linux*) MACHINE=Linux;;
  24. Darwin*) MACHINE=Mac;;
  25. CYGWIN*) MACHINE=Cygwin;;
  26. MINGW*) MACHINE=MinGw;;
  27. *) MACHINE="UNKNOWN:${UNAME_OUT}"
  28. esac
  29. if [ $MACHINE == "Linux" ]; then
  30. OPTIONS+="-DINPUT_xcb=yes "
  31. fi
  32. if [ $MACHINE == "Mac" ]; then
  33. OPTIONS+="-DBUILD_qtwayland=OFF "
  34. fi
  35. URL="https://download.qt.io/official_releases/qt/$QT_MAJOR.$QT_MINOR/$QT_MAJOR.$QT_MINOR.$QT_BUGFIX/single/qt-everywhere-src-$QT_MAJOR.$QT_MINOR.$QT_BUGFIX.tar.xz"
  36. mkdir -p "$BASEDIR"
  37. if [ -d "$DEPLOYDIR" ]; then
  38. rm -rf "$DEPLOYDIR"
  39. fi
  40. mkdir -p "$DEPLOYDIR"
  41. pushd "$BASEDIR"
  42. if [ ! -f qt-everywhere-src-$QT_MAJOR.$QT_MINOR.$QT_BUGFIX.tar.xz ]; then
  43. wget $URL
  44. fi
  45. if [ -d "qt-everywhere-src-$QT_MAJOR.$QT_MINOR.$QT_BUGFIX" ]; then
  46. rm -rf "qt-everywhere-src-$QT_MAJOR.$QT_MINOR.$QT_BUGFIX"
  47. fi
  48. tar -xf "qt-everywhere-src-$QT_MAJOR.$QT_MINOR.$QT_BUGFIX.tar.xz"
  49. pushd "qt-everywhere-src-$QT_MAJOR.$QT_MINOR.$QT_BUGFIX"
  50. cmake $OPTIONS -DBUILD_qtscxml=OFF -DBUILD_qtdatavis3d=OFF -DBUILD_qtcharts=OFF\
  51. -DBUILD_qtquickcontrols2=OFF -DBUILD_qtvirtualkeyboard=OFF -DBUILD_qtshadertools=OFF\
  52. -DBUILD_qttranslations=OFF -DBUILD_qtdoc=OFF -DBUILD_qt3d=OFF -DBUILD_qtnetworkauth=OFF\
  53. -DBUILD_qt5compat=OFF -DBUILD_qtcoap=OFF -DBUILD_qtlottie=OFF -DBUILD_qtmqtt=OFF\
  54. -DBUILD_qtopcua=OFF -DBUILD_qtquick3d=OFF -DBUILD_qtquicktimeline=OFF -DBUILD_qttools=OFF\
  55. -DBUILD_qtactiveqt=OFF -DBUILD_WITH_PCH=OFF\
  56. -DCMAKE_INSTALL_PREFIX="$DEPLOYDIR"\
  57. -DQT_BUILD_EXAMPLES=FALSE -DQT_BUILD_TESTS=FALSE\
  58. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE=ON -DINPUT_optimize_size=yes -G Ninja
  59. cmake --build . --parallel $JOBS
  60. cmake --install .
  61. popd