it doesnt work

This commit is contained in:
Malte Jürgens 2022-07-13 22:00:30 +02:00
parent c4727f0466
commit c4c32b1615
No known key found for this signature in database
GPG Key ID: D29FBD5F93C0CFC3
4 changed files with 68 additions and 6 deletions

View File

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.0) cmake_minimum_required(VERSION 3.11)
project(discord-screenaudio) project(discord-screenaudio)
set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD 17)
@ -13,7 +13,7 @@ find_package(Qt5 CONFIG REQUIRED COMPONENTS
WebEngineWidgets WebEngineWidgets
) )
set(discord-screenaudio_SRC set(${CMAKE_PROJECT_NAME}_SRC
src/main.cpp src/main.cpp
src/mainwindow.cpp src/mainwindow.cpp
src/virtmic.cpp src/virtmic.cpp
@ -27,9 +27,11 @@ include(FetchContent)
FetchContent_Declare(rohrkabel GIT_REPOSITORY "https://github.com/Soundux/rohrkabel") FetchContent_Declare(rohrkabel GIT_REPOSITORY "https://github.com/Soundux/rohrkabel")
FetchContent_MakeAvailable(rohrkabel) FetchContent_MakeAvailable(rohrkabel)
add_executable(discord-screenaudio ${discord-screenaudio_SRC}) add_executable(${CMAKE_PROJECT_NAME} ${${CMAKE_PROJECT_NAME}_SRC})
target_link_libraries(discord-screenaudio Qt5::Widgets Qt5::WebEngineWidgets rohrkabel) target_link_libraries(${CMAKE_PROJECT_NAME} Qt5::Widgets Qt5::WebEngineWidgets rohrkabel)
install(TARGETS discord-screenaudio DESTINATION bin) install(TARGETS ${CMAKE_PROJECT_NAME} DESTINATION bin)
install(PROGRAMS assets/discord-screenaudio.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications) install(PROGRAMS assets/${CMAKE_PROJECT_NAME}.desktop DESTINATION share/applications)
add_custom_target(appimage ${CMAKE_SOURCE_DIR}/scripts/build-appimage.sh WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})

4
scripts/Dockerfile Normal file
View File

@ -0,0 +1,4 @@
FROM ubuntu:jammy
ADD ./prepare-container.sh /tmp/prepare-container.sh
RUN /tmp/prepare-container.sh
WORKDIR /work

23
scripts/build-appimage.sh Executable file
View File

@ -0,0 +1,23 @@
#!/usr/bin/bash
set -e
# Check if inside of docker container
if [ ! -f /.dockerenv ]; then
# Check if docker is available
if ! command -v docker >/dev/null 2>&1; then
echo "Error: Docker is not available."
exit 1
fi
docker run --rm -v "$PWD":/work discord-screenaudio-buildenv bash /work/scripts/build-appimage.sh
exit 0
fi
tmpdir="$(mktemp -d)"
builddir="$tmpdir/build"
appdir="$tmpdir/AppDir"
cmake -B "$builddir" -S "$PWD"
cmake --build "$builddir" --config Release
DESTDIR="$appdir" cmake --install "$builddir" --prefix "/usr"
linuxdeployqt "$appdir/usr/share/applications/discord-screenaudio.desktop" -appimage -extra-plugins=iconengines,platformthemes/libqgtk3.so

33
scripts/prepare-container.sh Executable file
View File

@ -0,0 +1,33 @@
#!/bin/sh
set -e
cd "$(dirname "$0")"
if [ ! -f /.dockerenv ]; then
# Check if docker is available
if ! command -v docker >/dev/null 2>&1; then
echo "Error: Docker is not available."
exit 1
fi
docker build -t discord-screenaudio-buildenv .
exit 0
fi
echo "-> Installing dependencies with apt..."
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get install -y curl build-essential qtbase5-dev qtwebengine5-dev qt5-qmake cmake git libpipewire-0.3-dev
echo "-> Installing linuxdeployqt..."
tmpdir="$(mktemp -d)"
curl -Lo "$tmpdir/linuxdeployqt.AppImage" "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage"
chmod +x "$tmpdir/linuxdeployqt.AppImage"
sed '0,/AI\x02/{s|AI\x02|\x00\x00\x00|}' -i -i "$tmpdir/linuxdeployqt.AppImage"
(cd "$tmpdir" && ./linuxdeployqt.AppImage --appimage-extract)
mv -v "$tmpdir/squashfs-root" "/opt/linuxdeployqt"
ln -sv "/opt/linuxdeployqt/AppRun" "/usr/local/bin/linuxdeployqt"
echo "-> Cleaning up..."
rm -rf "$tmpdir"
rm /tmp/prepare-container.sh
apt-get clean