1
0
mirror of https://gitlab.com/kelteseth/ScreenPlay.git synced 2024-11-22 02:32:29 +01:00
This commit is contained in:
Elias Steurer 2023-03-30 17:51:16 +02:00
parent 75d72de5b7
commit 27b98a4693
5 changed files with 4 additions and 136 deletions

View File

@ -1,7 +0,0 @@
### Continous Inegration
##### Code Checks
##### Benchmarks
##### Unit tests

View File

@ -1,77 +0,0 @@
# Setup
1. Download and install the tools for your platform __first__.
1. [Windows](#windows)
1. [Linux](#linux)
1. [MacOS](#macos)
2. __Then__ see the instruction of [how to setup QtCreator and compile ScreenPlay](#setup-qtcreator-and-compile-screenplay)
## Windows
1. Download and install:
1. Microsoft Visual Studio Community 2022 [Download](https://visualstudio.microsoft.com/de/vs/community/)
1. Make sure you have the exact Windows SDK and MSVC version installed we use in `CMakePresets.json`
1. `"VCToolsVersion": "14.34.31933"` aka Visual Studio `17.4.3`
2. `"WindowsSDKVersion" : "10.0.22621.0"`
2. Python 3.11+ and select `Add to Path` during the installation. [Download](https://www.python.org/downloads/)
3. Optional if you do not have tools like `git` or `cmake` installed, we recommend `Chocolatey`:
1. Chocolatey via Powershell (Administrator) [Download](https://chocolatey.org/install)
2. Run `choco.exe install git vscode cmake --installargs 'ADD_CMAKE_TO_PATH=System' -y`
## Linux
1. Install dependencies for Debian/Ubuntu:
``` bash
sudo apt install build-essential git gpg ffmpeg mesa-common-dev libxkbcommon-* libfontconfig curl zip unzip tar cmake pkg-config apt-transport-https ca-certificates gnupg software-properties-common wget software-properties-common python3 python3-pip libgl1-mesa-dev lld ninja-build qml-module-qt-websockets qtwebengine5-* -y
# Only needed if we want x11 support
sudo apt-get install libx11-dev xserver-xorg-dev xorg-dev
```
## MacOS
1. Install XCode 14+ , open and restart your device.
1. Install [brew](https://brew.sh) that is needed by some third party vcpkg packages. Do not forget to add brew to your path as outlined at the on of the installation!
- `brew install pkg-config git llvm cmake`
# Download ScreenPlay and dependencies
``` bash
git clone --recursive https://gitlab.com/kelteseth/ScreenPlay.git ScreenPlay/ScreenPlay
cd ScreenPlay
```
Downloading dependencies is 100% automated. Simply run the `setup.py` script
``` bash
cd Tools
# Windows defaults to python, linux and macOS uses python3
python -m pip install -r requirements.txt
# This scrit will:
# 1. Downloads `Qt` and `QtCreator`
# 2. Create a `vcpkg` folder for dependencies
# 3. Compiles the dependencies
# 4. Downloads ffmpeg
python setup.py
```
Now you can either use VSCode or QtCreator:
# Option 1 (Recommended): Setup VSCode and compile ScreenPlay
1. Open VSCode
1. Install these extentions:
1. [C/C++ for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools)
1. [CMake Tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools)
2. Press: `CTRL` + `SHIFT` + `P` for every command:
1. `CMake: Select Configure Preset`. Select one of the listed presets like `MSVC SP Qt 6.4.2 Debug`
2. `CMake: Configure`
4. Press `F7` to Compile and `F5` to run!
⚠️ Do not forget to switch you CMake build target when switching run targets! For example you need to select the `debug` run target when you compile in `debug` mode!
# Option 2: Setup QtCreator and compile ScreenPlay
1. Open QtCreator at:
1. Windows: `..\aqt\Tools\QtCreator\bin\qtcreator.exe`
2. Linux: `../aqt/Tools/QtCreator/bin/qtcreator`
3. MacOS: `../aqt/Qt Creator`
2. Select the imported temporary kit like `MSVC SP Qt 6.4.2 Debug`
3. Press `CTRL` + `B` to Compile and `F5` to run!
# Developer docs
We use qdoc to generate documentation. Qt6 is the minimum version qdoc, because of vastly improved c++ parsing support.
* qdoc.exe configWindows.qdocconf
If you have installed Qt in a different directory, change the path to your Qt location.
Some useful links:
* [Introduction to QDoc](https://doc.qt.io/qt-5/01-qdoc-manual.html)
* [Writing qdoc comments](https://doc.qt.io/qt-5/qdoc-guide-writing.html)

View File

@ -1,46 +0,0 @@
# Overview
ScreenPlay consists of 7 projects:
1. **ScreenPlay executable**
* The main ScreenPlay App UI with Create, Installed, Community and Settings.
2. **ScreenPlayWallpaper executable**
* The Wallpaper executable that is used for displaying a single wallpaper. This uses ScreenPlaySDK to talk via QLocalsockets with the main ScreenPlayApp.
3. **ScreenPlayWidget executable**
* The Widget executable that is used for displaying a single widget. This uses ScreenPlaySDK to talk via QLocalsockets with the main ScreenPlayApp.
4. **ScreenPlayUtil lib**
* Util function, like project.json loading, that are needed in ScreenPlay and Workshop plugin.
5. **ScreenPlaySDK lLib**
* A SDK used internally in the ScreenPlayWallpaper and ScreenPlayWidget to talk to the main ScreenPlay app via QLocalsockets (Windows Pipes and Unix sockets).
6. **ScreenPlaySysInfo lib**
* A qml plugin to read CPU, GPU, Network and all sort of statisitcs.
7. **ScreenPlayWorkshop plugin**
* The Steam workshop plugin that is loaded at runtime.
![ProjectOverview.png](ProjectOverview.png)
### ScreenPlay App Class
ScreenPlay wrapps all classes into a App.h and App.cpp class. This is easier for unit test integration (not implemented yet!). The main app class is used for owning [all other classes via Q_PROPERTY](https://gitlab.com/kelteseth/ScreenPlay/-/blob/master/ScreenPlay/app.h#L39) to be easily accessible in the GUI/QML. We use the [constructor](https://gitlab.com/kelteseth/ScreenPlay/-/blob/master/ScreenPlay/app.cpp#L44) of the App class to initialize all Qt register types, fonts and to check if another ScreenPlay instance is running. The [init()](https://gitlab.com/kelteseth/ScreenPlay/-/blob/master/ScreenPlay/app.cpp#L103) method is used to initialize all other c++ classes in a certain order! It also sets up some events [signal/slots](https://doc.qt.io/qt-5/signalsandslots.html) like when the user changes the UI language.
For all other class documentation please visit [ScreenPlayDeveloperDocs](https://kelteseth.gitlab.io/ScreenPlayDeveloperDocs/)
``` mermaid
graph TD
Main.cpp --> App
App --> QQmlApplicationEngine
App --> GlobalVariables
App --> ScreenPlayManager
ScreenPlayManager --> ScreenPlayWallpaper
ScreenPlayManager --> ScreenPlayWidget
App --> Create
Create--> CreateVideoImport
App --> Util
App --> Settings
App --> SDKConnector
App --> InstalledListModel
InstalledListModel --> ProjectFile
App --> InstalledListFilter
App --> MonitorListModel
MonitorListModel --> Monitor
App --> ProfileListModel
ProfileListModel --> Profile
```

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

View File

@ -15,14 +15,12 @@ ScreenPlay: [![pipeline status](https://gitlab.com/kelteseth/ScreenPlay/badges/m
[中文总览](README_zh_CN.md)
ScreenPlay is an Open Source cross-platform app for displaying Video Wallpaper & Widgets. It is written in modern C++20/Qt5/QML. <br> <a href="https://screen-play.app/">Homepage</a> - <a href="https://forum.screen-play.app/">Forum</a>- <a href="https://discord.com/invite/4sY9d4f2DM">Discord</a>
ScreenPlay is an Open Source cross-platform app for displaying Video Wallpaper & Widgets. It is written in modern C++20/Qt6/QML. <br> <a href="https://screen-play.app/">Homepage</a> - <a href="https://forum.screen-play.app/">Forums</a>- <a href="https://discord.com/invite/4sY9d4f2DM">Discord</a>
<h3><a href="https://kelteseth.gitlab.io/ScreenPlayDocs/Building%20ScreenPlay/">Developer setup guide on how to download and compile ScreenPlay yourself.</a> </h3>
<h4><a href="https://www.patreon.com/ScreenPlayApp">🚀Support ScreenPlay On Patreon🚀</a> </h4>
</div>
# Important Issues
* [Implement KDE Support](https://gitlab.com/kelteseth/ScreenPlay/-/issues/111)
# Content Creation
[Learn the basics of QML for Wallpapers and Widgets in 5 minutes](https://screen-play.app/blog/guide_learn_the_basics_of_qml/)
<div>
@ -61,7 +59,7 @@ Here are some ways you can contribute:
* by [verifying issues](https://gitlab.com/kelteseth/ScreenPlay/-/issues?label_name%5B%5D=Unverified)
# Development
* [**Developer setup guide on how to download and compile ScreenPlay yourself.**](Docs/DeveloperSetup.md)
* [**Developer setup guide on how to download and compile ScreenPlay yourself.**](https://kelteseth.gitlab.io/ScreenPlayDocs/Building%20ScreenPlay/)
* If you want to contribute but don't know how to start, take a look at our open issues and WIP merge request.
* If you need help don't hesitate to ask me (Kelteseth) via:
* [Create a forum topic with a detailed description](https://forum.screen-play.app/category/2/general-discussion)