https://github.com/privatehive/qtappbase
Provides the foundation for every Qt App
https://github.com/privatehive/qtappbase
Last synced: 5 months ago
JSON representation
Provides the foundation for every Qt App
- Host: GitHub
- URL: https://github.com/privatehive/qtappbase
- Owner: Privatehive
- License: gpl-3.0
- Created: 2023-03-04T21:00:58.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2025-02-01T19:49:06.000Z (5 months ago)
- Last Synced: 2025-02-24T16:12:04.820Z (5 months ago)
- Language: CMake
- Size: 338 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# QtAppBase
[](https://conan.privatehive.de/ui/repos/tree/General/public-conan/de.privatehive/qtappbase)
#### Bundles common functionalities for all Qt based Apps
---
| os | arch | CI Status |
|-----------|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `Linux` | `x86_64` | [](https://github.com/Privatehive/QtAppBase/actions?query=branch%3Amaster) |
| `Windows` | `x86_64` | [](https://github.com/Privatehive/QtAppBase/actions?query=branch%3Amaster) |
| `Macos` | `armv8` | [](https://github.com/Privatehive/QtAppBase/actions?query=branch%3Amaster) |
| `Android` | `x86` | [](https://github.com/Privatehive/QtAppBase/actions?query=branch%3Amaster) |
| `Android` | `x86_64` | [](https://github.com/Privatehive/QtAppBase/actions?query=branch%3Amaster) |
| `Android` | `armv7` | [](https://github.com/Privatehive/QtAppBase/actions?query=branch%3Amaster) |
| `Android` | `armv8` | [](https://github.com/Privatehive/QtAppBase/actions?query=branch%3Amaster) |### Features
* `LogMessageHandler` logger with log rotation functionality
* `QtApplicationBase` a wrapper for native Qt QCoreApplication, QGuiApplication classes used for bootstrapping
* [`qml=True`] `QmlApplicationEngine` with hot reloading support
* `SecretsManager`
* CMake based deployment for Android, Linux, Windows
* Linux: AppImage
* Window: Installer
* macOS: App package
* Android: APK, AAB### How to run on Raspberry Pi (EGLFS)
Flash the Raspberry Pi OS Lite image
* Enable the GL (Full KMS) driver in raspi-config (also make sure at least 64 MB GPU memory is selected)
* Install: libegl1, libgles2, libxkbcommon0, libinput10
* Run the AppImage### How to compile AppImage runtime for Armv6
The [AppImageKit](https://github.com/AppImage/AppImageKit) release only contains the AppImage binaries for x86_64, i686,
aarch64, armhf (
armv7). Binaries for armv6 are missing (necessary for some Raspberry PIs).To compile the Armv6 binaries do the following:
* Install Raspberry Pi OS Lite (Legacy)
* Update the system
`sudo apt-get update && sudo apt-get upgrade`
* Install the following packages
`sudo apt-get install git cmake automake zsync libtool desktop-file-utils libglib2.0-dev libcairo2-dev libfuse-dev libssl-dev libgpgme-dev libgcrypt-dev`
* Clone the [AppImageKit](https://github.com/AppImage/AppImageKit) repo:
`git clone --recurse-submodules https://github.com/AppImage/AppImageKit.git`
* Apply the following patch```patch
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index f2247b4..f9f2df5 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -31,8 +31,8 @@ target_include_directories(appimagetool
# required for appimagetool's signing
# we're using CMake's functionality directly, since we want to link those statically
find_package(PkgConfig)
-pkg_check_modules(libgpgme REQUIRED gpgme IMPORTED_TARGET)
-pkg_check_modules(libgcrypt REQUIRED libgcrypt IMPORTED_TARGET)
+find_library(LIB_libgpgme NAMES gpgme)
+find_library(LIB_libgcrypt NAMES gcrypt)
# trick: list libraries on which imported static ones depend on in the PUBLIC section
# CMake then adds them after the PRIVATE ones in the linker command
@@ -44,8 +44,8 @@ target_link_libraries(appimagetool
libglib
libgio
libzlib
- PkgConfig::libgcrypt
- PkgConfig::libgpgme
+ ${LIB_libgcrypt}
+ ${LIB_libgpgme}
xz
)
```* Run `./ci/build-binaries-and-appimage.sh`
You should now see the follwing binaries `appimagetool-.AppImage`, `AppRun`, `runtime` (the arch suffix `armv6` is
missing).