qt6 appimage
This commit is contained in:
parent
8676bfc42d
commit
25d0ea94a1
4
.github/workflows/rssguard.yml
vendored
4
.github/workflows/rssguard.yml
vendored
@ -12,12 +12,12 @@ jobs:
|
||||
runs-on: "${{ matrix.os }}"
|
||||
strategy:
|
||||
matrix:
|
||||
os: [windows-2019, ubuntu-18.04, macos-10.15]
|
||||
os: [windows-2019, ubuntu-20.04, macos-10.15]
|
||||
use_webengine: ["ON", "OFF"]
|
||||
include:
|
||||
- os: windows-2019
|
||||
script_name: .\resources\scripts\github-actions\build-windows.ps1
|
||||
- os: ubuntu-18.04
|
||||
- os: ubuntu-20.04
|
||||
script_name: ./resources/scripts/github-actions/build-linux-mac.sh
|
||||
- os: macos-10.15
|
||||
script_name: ./resources/scripts/github-actions/build-linux-mac.sh
|
||||
|
@ -16,35 +16,42 @@ fi
|
||||
|
||||
echo "OS: $os; WebEngine: $webengine"
|
||||
|
||||
# Prepare environment.
|
||||
# Install needed dependencies.
|
||||
if [ $is_linux = true ]; then
|
||||
sudo add-apt-repository ppa:beineri/opt-qt-5.15.2-bionic -y
|
||||
sudo apt-get update
|
||||
sudo apt update
|
||||
|
||||
sudo apt-get -qy install qt515tools qt515base qt515webengine qt515svg qt515multimedia
|
||||
sudo apt-get -qy install cmake ninja-build openssl libssl-dev libgl1-mesa-dev gstreamer1.0-alsa gstreamer1.0-plugins-good gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gstreamer1.0-qt5 gstreamer1.0-pulseaudio
|
||||
|
||||
source /opt/qt515/bin/qt515-env.sh
|
||||
sudo apt -qy install libgl1-mesa-dev gstreamer1.0-alsa gstreamer1.0-plugins-good gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gstreamer1.0-qt5 gstreamer1.0-pulseaudio libodbc1 postgresql python3-pip
|
||||
|
||||
BUILD_WITH_QT6="OFF"
|
||||
else
|
||||
pip3 install aqtinstall
|
||||
|
||||
QTPATH="$(pwd)/Qt"
|
||||
QTVERSION="6.3.1"
|
||||
QTBIN="$QTPATH/$QTVERSION/macos/bin"
|
||||
QTTARGET="linux"
|
||||
QTOS="gcc_64"
|
||||
QTARCH="gcc_64"
|
||||
else
|
||||
|
||||
echo "Qt bin directory is: $QTBIN"
|
||||
echo "Qt will be installed to: $QTPATH"
|
||||
QTTARGET="mac"
|
||||
QTOS="macos"
|
||||
QTARCH="clang_64"
|
||||
fi
|
||||
|
||||
aqt install-qt -O "$QTPATH" "mac" "desktop" "$QTVERSION" "clang_64" -m "qtwebengine" "qtwebchannel" "qtmultimedia" "qt5compat" "qtpositioning"
|
||||
aqt install-tool -O "$QTPATH" "mac" "desktop" "tools_cmake"
|
||||
aqt install-tool -O "$QTPATH" "mac" "desktop" "tools_ninja"
|
||||
pip3 install aqtinstall
|
||||
|
||||
export QT_PLUGIN_PATH="$QTPATH/$QTVERSION/macos/plugins"
|
||||
export PATH="$QTBIN:$QTPATH/Tools/CMake/bin:$QTPATH/Tools/Ninja:$PATH"
|
||||
# Setup Qt information.
|
||||
QTPATH="$(pwd)/Qt"
|
||||
QTVERSION="6.3.1"
|
||||
QTBIN="$QTPATH/$QTVERSION/$QTOS/bin"
|
||||
|
||||
BUILD_WITH_QT6="ON"
|
||||
export QT_PLUGIN_PATH="$QTPATH/$QTVERSION/$QTOS/plugins"
|
||||
export PATH="$QTBIN:$QTPATH/Tools/CMake/bin:$QTPATH/Tools/Ninja:$PATH"
|
||||
|
||||
echo "Qt bin directory is: $QTBIN"
|
||||
echo "Qt will be installed to: $QTPATH"
|
||||
|
||||
# Install Qt.
|
||||
aqt install-qt -O "$QTPATH" "$QTTARGET" "desktop" "$QTVERSION" "$QTARCH" -m "qtwebengine" "qtwebchannel" "qtmultimedia" "qt5compat" "qtpositioning" "qtserialport"
|
||||
aqt install-tool -O "$QTPATH" "$QTTARGET" "desktop" "tools_cmake"
|
||||
aqt install-tool -O "$QTPATH" "$QTTARGET" "desktop" "tools_ninja"
|
||||
|
||||
if [ $is_linux = true ]; then
|
||||
aqt install-tool -O "$QTPATH" "$QTTARGET" "desktop" "tools_openssl_x64"
|
||||
fi
|
||||
|
||||
cmake --version
|
||||
@ -54,38 +61,35 @@ git_tag=$(git describe --tags $(git rev-list --tags --max-count=1))
|
||||
git_revision=$(git rev-parse --short HEAD)
|
||||
|
||||
mkdir rssguard-build && cd rssguard-build
|
||||
cmake .. -G Ninja -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DFORCE_BUNDLE_ICONS="ON" -DCMAKE_BUILD_TYPE="MinSizeRel" -DCMAKE_INSTALL_PREFIX="$prefix" -DREVISION_FROM_GIT="ON" -DBUILD_WITH_QT6="$BUILD_WITH_QT6" -DUSE_WEBENGINE="$webengine" -DFEEDLY_CLIENT_ID="$FEEDLY_CLIENT_ID" -DFEEDLY_CLIENT_SECRET="$FEEDLY_CLIENT_SECRET" -DGMAIL_CLIENT_ID="$GMAIL_CLIENT_ID" -DGMAIL_CLIENT_SECRET="$GMAIL_CLIENT_SECRET" -DINOREADER_CLIENT_ID="$INOREADER_CLIENT_ID" -DINOREADER_CLIENT_SECRET="$INOREADER_CLIENT_SECRET"
|
||||
cmake .. -G Ninja -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DFORCE_BUNDLE_ICONS="ON" -DCMAKE_BUILD_TYPE="MinSizeRel" -DCMAKE_INSTALL_PREFIX="$prefix" -DREVISION_FROM_GIT="ON" -DBUILD_WITH_QT6="ON" -DUSE_WEBENGINE="$webengine" -DFEEDLY_CLIENT_ID="$FEEDLY_CLIENT_ID" -DFEEDLY_CLIENT_SECRET="$FEEDLY_CLIENT_SECRET" -DGMAIL_CLIENT_ID="$GMAIL_CLIENT_ID" -DGMAIL_CLIENT_SECRET="$GMAIL_CLIENT_SECRET" -DINOREADER_CLIENT_ID="$INOREADER_CLIENT_ID" -DINOREADER_CLIENT_SECRET="$INOREADER_CLIENT_SECRET"
|
||||
cmake --build .
|
||||
cmake --install . --prefix "$prefix"
|
||||
|
||||
if [ $is_linux = true ]; then
|
||||
# Obtain linuxdeployqt.
|
||||
wget -qc https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage
|
||||
chmod a+x linuxdeployqt-continuous-x86_64.AppImage
|
||||
wget -qc https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
|
||||
wget -qc https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
|
||||
chmod a+x linuxdeploy*.AppImage
|
||||
|
||||
# Copy Gstreamer libs.
|
||||
install -v -Dm755 "/usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-plugin-scanner" "AppDir/usr/lib/gstreamer1.0/gstreamer-1.0/gst-plugin-scanner"
|
||||
gst_executables="-executable=AppDir/usr/lib/gstreamer1.0/gstreamer-1.0/gst-plugin-scanner"
|
||||
|
||||
for plugin in /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgst*.so; do
|
||||
basen=$(basename "$plugin")
|
||||
install -v -Dm755 "$plugin" "AppDir/usr/lib/gstreamer-1.0/$basen"
|
||||
gst_executables="${gst_executables} -executable=AppDir/usr/lib/gstreamer-1.0/$basen"
|
||||
done
|
||||
|
||||
echo "Gstream command line for AppImage is: $gst_executables"
|
||||
|
||||
# Create AppImage.
|
||||
unset QTDIR; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH
|
||||
./linuxdeployqt-continuous-x86_64.AppImage "./AppDir/usr/share/applications/com.github.rssguard.desktop" -bundle-non-qt-libs -no-translations $gst_executables
|
||||
./linuxdeployqt-continuous-x86_64.AppImage "./AppDir/usr/share/applications/com.github.rssguard.desktop" -bundle-non-qt-libs -no-translations $gst_executables
|
||||
|
||||
if [[ "$webengine" == "ON" ]]; then
|
||||
# Copy some NSS3 files to prevent WebEngine crashes.
|
||||
cp /usr/lib/x86_64-linux-gnu/nss/* ./AppDir/usr/lib/ -v
|
||||
fi
|
||||
|
||||
./linuxdeployqt-continuous-x86_64.AppImage "./AppDir/usr/share/applications/com.github.rssguard.desktop" -appimage -no-translations $gst_executables
|
||||
# Fix some missing Qt folders.
|
||||
mkdir "$QTPATH/$QTVERSION/$QTOS/plugins/audio"
|
||||
mkdir "$QTPATH/$QTVERSION/$QTOS/plugins/mediaservice"
|
||||
|
||||
# Create AppImage.
|
||||
./linuxdeploy-x86_64.AppImage --output "appimage" --plugin "qt" --appdir "AppDir"
|
||||
|
||||
# Rename AppImaage.
|
||||
set -- R*.AppImage
|
||||
|
Loading…
x
Reference in New Issue
Block a user