Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions webview/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
cmake_minimum_required(VERSION 3.5)

project(AnthiasWebView LANGUAGES CXX)

set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(
Qt6 COMPONENTS
Core
DBus
Widgets
WebEngineCore
WebEngineWidgets
REQUIRED
)

set(
CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -Wl,-rpath-link, ${CMAKE_SYSROOT}/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE} -L${CMAKE_SYSROOT}/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}"
)
set(
CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} -fPIC -Wl,-rpath-link,${CMAKE_SYSROOT}/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE} -L${CMAKE_SYSROOT}/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}"
)

add_executable(
ScreenlyWebview
src/main.cpp
src/mainwindow.cpp
src/view.cpp
src/mainwindow.h
src/view.h
)

target_link_libraries(
ScreenlyWebview PRIVATE
Qt6::Core
Qt6::DBus
Qt6::WebEngineCore
Qt6::WebEngineWidgets
)

target_include_directories(ScreenlyWebview PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
12 changes: 12 additions & 0 deletions webview/docker/Dockerfile.qt6
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
FROM arm32v7/debian:bookworm

RUN apt-get update -y && \
apt-get install -y \
cmake \
rsync \
gcc-arm-linux-gnueabihf \
g++-arm-linux-gnueabihf \
qt6-base-dev \
qt6-webengine-dev
Comment on lines +4 to +10

Check notice

Code scanning / SonarCloud

Arguments in long RUN instructions should be sorted

<!--SONAR_ISSUE_KEY:AZJYWu4CiKyukTreoIN1-->Sort these package names alphanumerically. <p>See more on <a href="https://sonarcloud.io/project/issues?id=Screenly_screenly-ose&issues=AZJYWu4CiKyukTreoIN1&open=AZJYWu4CiKyukTreoIN1&pullRequest=2081">SonarCloud</a></p>

WORKDIR /build
33 changes: 33 additions & 0 deletions webview/scripts/build_webview.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#!/bin/bash

set -euo pipefail

CORE_COUNT="$(nproc)"

function build_webview() {
local ARCHIVE_NAME="webview.tar.gz"
local ARCHIVE_DESTINATION="/build/${ARCHIVE_NAME}"

rsync -aP /webview /build
cd /build/webview
mkdir -p build && cd build
cmake ..
cmake --build . --parallel "${CORE_COUNT}"

mkdir -p fakeroot/bin fakeroot/share/ScreenlyWebview
mv ScreenlyWebview fakeroot/bin/
cp -rf ../res fakeroot/share/ScreenlyWebview/

cd fakeroot

tar cfz ${ARCHIVE_DESTINATION} .
}

function main() {
local RELEASE_DIR='/build/release'
mkdir -p ${RELEASE_DIR}

build_webview
}

main
28 changes: 28 additions & 0 deletions webview/scripts/initialize_builder.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/bin/bash

set -euo pipefail

WEBVIEW_BUILDER_IMAGE_NAME='webview-builder'
WEBVIEW_BUILDER_CONTAINER_NAME='webview-builder-container'

BUILDX_ARGS=(
'-f' 'docker/Dockerfile.qt6'
'--platform' 'linux/arm/v7'
'-t' "${WEBVIEW_BUILDER_IMAGE_NAME}"
)

RUN_ARGS=(
'-itd'
'--name' "${WEBVIEW_BUILDER_CONTAINER_NAME}"
'-v' './build:/build'
'-v' './src:/webview/src'
'-v' './res:/webview/res'
'-v' './CMakeLists.txt:/webview/CMakeLists.txt'
'-v' './ScreenlyWebview.pro:/webview/ScreenlyWebview.pro'
'-v' './scripts/build_webview.sh:/scripts/build_webview.sh'
"${WEBVIEW_BUILDER_IMAGE_NAME}"
)

docker buildx build --load "${BUILDX_ARGS[@]}" .
docker rm -f "${WEBVIEW_BUILDER_CONTAINER_NAME}" || true
docker run "${RUN_ARGS[@]}" bash
3 changes: 2 additions & 1 deletion webview/src/main.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#include <QApplication>
#include <QDebug>
#include <QtDBus>
#include <QDBusConnection>
#include <QDBusError>
#include <QWebEngineView>

#include "mainwindow.h"
Expand Down