Compare commits

..

No commits in common. "8d5072533f5eb87864f2fd3f51385abaa96535cd" and "f0626e8cae48e533349bbd6e89f9b5860bf3df72" have entirely different histories.

7 changed files with 18 additions and 33 deletions

View file

@ -20,10 +20,11 @@ jobs:
include:
# Windows
- os: windows-2025
qt_version: 6.10.2
qt_version: 6.10.1
qt_version_arm64: 6.10.0
# macOS
- os: macos-15
qt_version: 6.10.2
qt_version: 6.10.1
runs-on: ${{ matrix.os }}
@ -47,7 +48,6 @@ jobs:
set-env: ${{ runner.os != 'Windows' }}
add-tools-to-path: ${{ runner.os != 'Windows' }}
version: ${{ matrix.qt_version }}
aqtsource: 'git+https://github.com/miurahr/aqtinstall.git@9edeb24ae65361fd032a063a0b0148764eff09c5'
- name: Install Qt ARM64 (Windows)
if: runner.os == 'Windows'
@ -57,7 +57,7 @@ jobs:
set-env: false
add-tools-to-path: false
arch: win64_msvc2022_arm64_cross_compiled
version: ${{ matrix.qt_version }}
version: ${{ matrix.qt_version_arm64 }}
- name: Build x64 binaries (Windows)
if: runner.os == 'Windows'
@ -75,7 +75,7 @@ jobs:
set "PATH=%QT_PATH%;%PATH%"
scripts\build-arch.bat Release arm64
env:
QT_PATH: ${{ runner.workspace }}\Qt\${{ matrix.qt_version }}\msvc2022_arm64\bin
QT_PATH: ${{ runner.workspace }}\Qt\${{ matrix.qt_version_arm64 }}\msvc2022_arm64\bin
- name: Build Package
shell: pwsh

View file

@ -82,10 +82,6 @@ Moonlight builds for Steam Link are subject to hardware limitations of the Steam
* Maximum video bitrate: **40 Mbps**
* **HDR streaming is not supported** on the original hardware
### Docker containers
If you want to use Docker for building, look at [this repo](https://github.com/cgutman/moonlight-packaging) containing canonical containers
for different architectures, which handle building deps and extra linking for you.
### Build Setup Steps
1. Install the latest Qt SDK (and optionally, the Qt Creator IDE) from https://www.qt.io/download
* You can install Qt via Homebrew on macOS, but you will need to use `brew install qt --with-debug` to be able to create debug builds of Moonlight.
@ -97,8 +93,7 @@ for different architectures, which handle building deps and extra linking for yo
* For Windows builds, use `scripts\build-arch.bat` and `scripts\generate-bundle.bat`. Execute these scripts from the root of the repository within a Qt command prompt. Ensure 7-Zip binary directory is on your `%PATH%`.
* For macOS builds, use `scripts/generate-dmg.sh`. Execute this script from the root of the repository and ensure Qt's `bin` folder is in your `$PATH`.
* For Steam Link builds, run `scripts/build-steamlink-app.sh` from the root of the repository.
* To build from the command line for development use on macOS or Linux, run `qmake6 moonlight-qt.pro` then `make debug` or `make release`.
* The final binary will be placed in `app/moonlight`.
* To build from the command line for development use on macOS or Linux, run `qmake6 moonlight-qt.pro` then `make debug` or `make release`
* To create an embedded build for a single-purpose device, use `qmake6 "CONFIG+=embedded" moonlight-qt.pro` and build normally.
* This build will lack windowed mode, Discord/Help links, and other features that don't make sense on an embedded device.
* For platforms with poor GPU performance, add `"CONFIG+=gpuslow"` to prefer direct KMSDRM rendering over GL/Vulkan renderers. Direct KMSDRM rendering can use dedicated YUV/RGB conversion and scaling hardware rather than slower GPU shaders for these operations.

View file

@ -1,9 +1,11 @@
import QtQuick 2.0
import QtQuick.Controls 2.5
import QtQuick.Controls 2.3
Dialog {
modal: true
anchors.centerIn: Overlay.overlay
x: Math.round((parent.width - width) / 2)
y: Math.round((parent.height - height) / 2)
onClosed: {
// We must force focus back to the last item. If we don't,

View file

@ -359,7 +359,7 @@ int SDLCALL signalHandlerThread(void* data)
// Exit immediately if we haven't changed state since last attempt
if (session == lastSession || requestedQuit) {
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, "Exiting immediately on second signal");
_Exit(1);
_exit(1);
}
if (sig == SIGTERM) {
@ -376,7 +376,7 @@ int SDLCALL signalHandlerThread(void* data)
// Exit immediately if we haven't changed state since last attempt
if (requestedQuit) {
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, "Exiting immediately on second signal");
_Exit(1);
_exit(1);
}
// If we're not streaming, we'll close the whole app

View file

@ -210,7 +210,7 @@ bool WMUtils::isGpuSlow()
bool ret;
if (!Utils::getEnvironmentVariableOverride("GL_IS_SLOW", &ret)) {
#if defined(GL_IS_SLOW) || (!defined(Q_PROCESSOR_X86) && !defined(Q_OS_DARWIN) && !defined(Q_OS_WIN))
#if defined(GL_IS_SLOW) || !defined(Q_PROCESSOR_X86)
// We currently assume GPUs on non-x86 hardware are slow by default
ret = true;
#else

@ -1 +1 @@
Subproject commit 6250fa29ee87873716045e3b64f1f229374324e8
Subproject commit 305993b01322aeb7710a5443960774ecd391c55c

View file

@ -222,7 +222,7 @@ echo Deploying Qt dependencies
%WINDEPLOYQT_CMD% --dir %DEPLOY_FOLDER% --%BUILD_CONFIG% --qmldir %SOURCE_ROOT%\app\gui --no-opengl-sw --no-compiler-runtime --no-sql %WINDEPLOYQT_ARGS% %BUILD_FOLDER%\app\%BUILD_CONFIG%\Moonlight.exe
if !ERRORLEVEL! NEQ 0 goto Error
echo Deleting unused files
echo Deleting unused styles
rem Qt 5.x directories
rmdir /s /q %DEPLOY_FOLDER%\QtQuick\Controls.2\Fusion
rmdir /s /q %DEPLOY_FOLDER%\QtQuick\Controls.2\Imagine
@ -234,8 +234,6 @@ rmdir /s /q %DEPLOY_FOLDER%\qml\QtQuick\Controls\Universal
rmdir /s /q %DEPLOY_FOLDER%\qml\QtQuick\Controls\Windows
rmdir /s /q %DEPLOY_FOLDER%\qml\QtQuick\Controls\FluentWinUI3
rmdir /s /q %DEPLOY_FOLDER%\qml\QtQuick\NativeStyle
rem icuuc.dll ships with all supported OSes (and Qt incorrectly deploys the x64 version on ARM64)
del %DEPLOY_FOLDER%\icuuc.dll
if "%SIGN%"=="1" (
echo Signing deployed binaries
@ -268,19 +266,9 @@ rem This must be done after WiX harvesting and signing, since the VCRT dlls are
rem and should not be harvested for inclusion in the full installer
copy "%VC_REDIST_DLL_PATH%\*.dll" %DEPLOY_FOLDER%
if !ERRORLEVEL! NEQ 0 goto Error
rem Since we don't publish Windows installers for CI builds, let's use the user profile
rem location of the regular non-portable version by default. We'll place a file in the
rem the package to allow the user to rename if they want portable behavior.
if defined CI_VERSION (
echo. > %DEPLOY_FOLDER%\portable.dat.inactive
if !ERRORLEVEL! NEQ 0 goto Error
) else (
rem This file tells Moonlight that it's a portable installation
echo. > %DEPLOY_FOLDER%\portable.dat
if !ERRORLEVEL! NEQ 0 goto Error
)
rem This file tells Moonlight that it's a portable installation
echo. > %DEPLOY_FOLDER%\portable.dat
if !ERRORLEVEL! NEQ 0 goto Error
7z a %INSTALLER_FOLDER%\MoonlightPortable-%ARCH%-%VERSION%.zip %DEPLOY_FOLDER%\*
if !ERRORLEVEL! NEQ 0 goto Error