mirror of
https://github.com/moonlight-stream/moonlight-qt.git
synced 2026-05-19 16:10:35 +00:00
Switch to downloading prebuilt release artifacts instead of a submodule
This commit is contained in:
@@ -34,6 +34,10 @@ jobs:
|
|||||||
submodules: 'recursive'
|
submodules: 'recursive'
|
||||||
fetch-depth: 1
|
fetch-depth: 1
|
||||||
|
|
||||||
|
- name: Download dependencies (Windows)
|
||||||
|
if: runner.os == 'Windows'
|
||||||
|
run: powershell ./setup-deps.ps1
|
||||||
|
|
||||||
- name: Install create-dmg (macOS)
|
- name: Install create-dmg (macOS)
|
||||||
if: runner.os == 'macOS'
|
if: runner.os == 'macOS'
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -4,5 +4,6 @@
|
|||||||
**/.vs/
|
**/.vs/
|
||||||
.vscode/
|
.vscode/
|
||||||
build/
|
build/
|
||||||
|
libs/
|
||||||
config.tests/*/.qmake.stash
|
config.tests/*/.qmake.stash
|
||||||
config.tests/*/Makefile
|
config.tests/*/Makefile
|
||||||
|
|||||||
@@ -10,7 +10,3 @@
|
|||||||
[submodule "h264bitstream/h264bitstream"]
|
[submodule "h264bitstream/h264bitstream"]
|
||||||
path = h264bitstream/h264bitstream
|
path = h264bitstream/h264bitstream
|
||||||
url = https://github.com/aizvorski/h264bitstream.git
|
url = https://github.com/aizvorski/h264bitstream.git
|
||||||
[submodule "libs"]
|
|
||||||
path = libs
|
|
||||||
url = https://github.com/cgutman/moonlight-qt-prebuilts.git
|
|
||||||
shallow = true
|
|
||||||
|
|||||||
@@ -91,7 +91,10 @@ for different architectures, which handle building deps and extra linking for yo
|
|||||||
* 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.
|
* 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.
|
||||||
* You may also use your Linux distro's package manager for the Qt SDK as long as the packages are Qt 5.12 or later.
|
* You may also use your Linux distro's package manager for the Qt SDK as long as the packages are Qt 5.12 or later.
|
||||||
* This step is not required for building on Steam Link, because the Steam Link SDK includes Qt 5.14.
|
* This step is not required for building on Steam Link, because the Steam Link SDK includes Qt 5.14.
|
||||||
2. Run `git submodule update --init --recursive` from within `moonlight-qt/`
|
2. Download submodules and dependencies
|
||||||
|
* Run `git submodule update --init --recursive` from within `moonlight-qt/`.
|
||||||
|
* On Windows and macOS, you must also run `setup-deps.ps1` (Windows) or `setup-deps.py` (macOS).
|
||||||
|
* Perform these steps each time you pull new changes from the Git repository.
|
||||||
3. Open the project in Qt Creator or build from qmake on the command line.
|
3. Open the project in Qt Creator or build from qmake on the command line.
|
||||||
* To build a binary for use on non-development machines, use the scripts in the `scripts` folder.
|
* To build a binary for use on non-development machines, use the scripts in the `scripts` folder.
|
||||||
* 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 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%`.
|
||||||
|
|||||||
@@ -36,6 +36,10 @@ DEFINES += QT_DEPRECATED_WARNINGS
|
|||||||
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||||
|
|
||||||
win32 {
|
win32 {
|
||||||
|
!exists($$PWD/../libs/windows) {
|
||||||
|
error("Missing dependencies. Please run 'powershell .\setup-deps.ps1' to fetch prebuilt libraries.")
|
||||||
|
}
|
||||||
|
|
||||||
contains(QT_ARCH, x86_64) {
|
contains(QT_ARCH, x86_64) {
|
||||||
LIBS += -L$$PWD/../libs/windows/lib/x64
|
LIBS += -L$$PWD/../libs/windows/lib/x64
|
||||||
INCLUDEPATH += $$PWD/../libs/windows/include/x64 $$PWD/../libs/windows/include/x64/SDL2
|
INCLUDEPATH += $$PWD/../libs/windows/include/x64 $$PWD/../libs/windows/include/x64/SDL2
|
||||||
@@ -49,6 +53,10 @@ win32 {
|
|||||||
LIBS += ws2_32.lib winmm.lib dxva2.lib ole32.lib gdi32.lib user32.lib d3d9.lib dwmapi.lib dbghelp.lib
|
LIBS += ws2_32.lib winmm.lib dxva2.lib ole32.lib gdi32.lib user32.lib d3d9.lib dwmapi.lib dbghelp.lib
|
||||||
}
|
}
|
||||||
macx:!disable-prebuilts {
|
macx:!disable-prebuilts {
|
||||||
|
!exists($$PWD/../libs/mac) {
|
||||||
|
error("Missing dependencies. Please run 'python3 setup-deps.py' to fetch prebuilt libraries.")
|
||||||
|
}
|
||||||
|
|
||||||
INCLUDEPATH += $$PWD/../libs/mac/include $$PWD/../libs/mac/include/SDL2
|
INCLUDEPATH += $$PWD/../libs/mac/include $$PWD/../libs/mac/include/SDL2
|
||||||
LIBS += -L$$PWD/../libs/mac/lib
|
LIBS += -L$$PWD/../libs/mac/lib
|
||||||
}
|
}
|
||||||
|
|||||||
-1
Submodule libs deleted from 7cf4f7b9d2
@@ -25,6 +25,12 @@ if /I "%BUILD_CONFIG%"=="debug" (
|
|||||||
echo Signed release builds must not have unstaged changes!
|
echo Signed release builds must not have unstaged changes!
|
||||||
exit /b 1
|
exit /b 1
|
||||||
)
|
)
|
||||||
|
|
||||||
|
echo Updating dependencies
|
||||||
|
powershell %cd%\setup-deps.ps1
|
||||||
|
if !ERRORLEVEL! NEQ 0 (
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
) else (
|
) else (
|
||||||
echo Invalid build configuration - expected 'debug' or 'release'
|
echo Invalid build configuration - expected 'debug' or 'release'
|
||||||
echo Usage: scripts\build-arch.bat ^(release^|debug^)
|
echo Usage: scripts\build-arch.bat ^(release^|debug^)
|
||||||
|
|||||||
@@ -23,6 +23,9 @@ else
|
|||||||
VERSION=`cat $SOURCE_ROOT/app/version.txt`
|
VERSION=`cat $SOURCE_ROOT/app/version.txt`
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo Updating dependencies
|
||||||
|
python3 $SOURCE_ROOT/setup-deps.py
|
||||||
|
|
||||||
echo Cleaning output directories
|
echo Cleaning output directories
|
||||||
rm -rf $BUILD_FOLDER
|
rm -rf $BUILD_FOLDER
|
||||||
rm -rf $DEPLOY_FOLDER
|
rm -rf $DEPLOY_FOLDER
|
||||||
|
|||||||
@@ -1,92 +0,0 @@
|
|||||||
LIB_PATH=$(pwd)/libs
|
|
||||||
|
|
||||||
while [[ "$#" -gt 0 ]]; do
|
|
||||||
echo $1
|
|
||||||
case "$1" in
|
|
||||||
--sdl2_win)
|
|
||||||
rm -r $LIB_PATH/windows/include/*/SDL2
|
|
||||||
rm $LIB_PATH/windows/lib/*/SDL2.* $LIB_PATH/windows/lib/*/SDL2main.*
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--sdl2_mac)
|
|
||||||
rm -r $LIB_PATH/mac/include/SDL2
|
|
||||||
rm $LIB_PATH/mac/lib/libSDL2.dylib
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--sdl3_win)
|
|
||||||
rm -r $LIB_PATH/windows/include/*/SDL3
|
|
||||||
rm $LIB_PATH/windows/lib/*/SDL3.* $LIB_PATH/windows/lib/*/SDL3main.*
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--sdl3_mac)
|
|
||||||
rm -r $LIB_PATH/mac/include/SDL3
|
|
||||||
rm $LIB_PATH/mac/lib/libSDL3.dylib
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--sdl_ttf_win)
|
|
||||||
rm $LIB_PATH/windows/include/*/SDL2/SDL_ttf.h $LIB_PATH/windows/lib/*/SDL2_ttf.*
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--sdl_ttf_mac)
|
|
||||||
rm $LIB_PATH/mac/include/SDL2/SDL_ttf.h $LIB_PATH/mac/lib/libSDL2_ttf.dylib
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--detours_win)
|
|
||||||
rm $LIB_PATH/windows/include/detver.h $LIB_PATH/windows/include/detours.h $LIB_PATH/windows/lib/*/detours.*
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--discord-rpc_win)
|
|
||||||
rm $LIB_PATH/windows/include/discord_*.h $LIB_PATH/windows/lib/*/discord-rpc.*
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--discord-rpc_mac)
|
|
||||||
rm $LIB_PATH/mac/include/discord_*.h $LIB_PATH/mac/lib/libdiscord-rpc.a
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--opus_win)
|
|
||||||
rm $LIB_PATH/windows/include/opus*.h $LIB_PATH/windows/lib/*/opus.*
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--opus_mac)
|
|
||||||
rm $LIB_PATH/mac/include/opus*.h $LIB_PATH/mac/lib/libopus.a
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--openssl_win)
|
|
||||||
rm -r $LIB_PATH/windows/include/*/openssl
|
|
||||||
rm $LIB_PATH/windows/lib/*/libcrypto* $LIB_PATH/windows/lib/*/libssl*
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--openssl_mac)
|
|
||||||
rm -r $LIB_PATH/mac/include/openssl
|
|
||||||
rm $LIB_PATH/mac/lib/libssl*.dylib $LIB_PATH/mac/lib/libcrypto*.dylib
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--ffmpeg_win)
|
|
||||||
rm -r $LIB_PATH/windows/include/*/libavcodec $LIB_PATH/windows/include/*/libavutil $LIB_PATH/windows/include/*/libavformat $LIB_PATH/windows/include/*/libswscale
|
|
||||||
rm $LIB_PATH/windows/lib/*/avcodec* $LIB_PATH/windows/lib/*/avutil* $LIB_PATH/windows/lib/*/avformat* $LIB_PATH/windows/lib/*/swscale*
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--dav1d_win)
|
|
||||||
rm $LIB_PATH/windows/lib/*/dav1d*
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--ffmpeg_mac)
|
|
||||||
rm -r $LIB_PATH/mac/include/libavcodec $LIB_PATH/mac/include/libavutil $LIB_PATH/mac/include/libavformat $LIB_PATH/mac/include/libswscale
|
|
||||||
rm $LIB_PATH/mac/lib/libavcodec* $LIB_PATH/mac/lib/libavutil* $LIB_PATH/mac/lib/libavformat* $LIB_PATH/mac/lib/libswscale*
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--libplacebo_win)
|
|
||||||
rm -r $LIB_PATH/windows/include/*/libplacebo
|
|
||||||
rm $LIB_PATH/windows/lib/*/libplacebo*
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--)
|
|
||||||
shift;
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Unexpected option: $1"
|
|
||||||
exit
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
@@ -31,6 +31,9 @@ fi
|
|||||||
|
|
||||||
[ "$SIGNING_IDENTITY" == "" ] || git diff-index --quiet HEAD -- || fail "Signed release builds must not have unstaged changes!"
|
[ "$SIGNING_IDENTITY" == "" ] || git diff-index --quiet HEAD -- || fail "Signed release builds must not have unstaged changes!"
|
||||||
|
|
||||||
|
echo Updating dependencies
|
||||||
|
python3 $SOURCE_ROOT/setup-deps.py
|
||||||
|
|
||||||
echo Cleaning output directories
|
echo Cleaning output directories
|
||||||
rm -rf $BUILD_FOLDER
|
rm -rf $BUILD_FOLDER
|
||||||
rm -rf $INSTALLER_FOLDER
|
rm -rf $INSTALLER_FOLDER
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
$ErrorActionPreference = 'Stop'
|
||||||
|
|
||||||
|
$Organization = "moonlight-stream"
|
||||||
|
$PrebuiltRepo = "moonlight-qt-deps"
|
||||||
|
$TargetDir = Join-Path $PSScriptRoot "libs\windows"
|
||||||
|
$Assets = @("windows-x64.zip", "windows-ARM64.zip")
|
||||||
|
$Tag = "v1.0.1"
|
||||||
|
|
||||||
|
if (Test-Path $TargetDir) {
|
||||||
|
Write-Host "Cleaning target directory..." -ForegroundColor Cyan
|
||||||
|
Remove-Item -Path "$TargetDir\*" -Recurse -Force
|
||||||
|
} else {
|
||||||
|
New-Item -ItemType Directory -Path $TargetDir | Out-Null
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($AssetName in $Assets) {
|
||||||
|
$Url = "https://github.com/$Organization/$PrebuiltRepo/releases/download/$Tag/$AssetName"
|
||||||
|
$ArchivePath = Join-Path $env:TEMP $AssetName
|
||||||
|
|
||||||
|
Write-Host "Downloading $AssetName..." -ForegroundColor Cyan
|
||||||
|
curl.exe -s -L -f -o "$ArchivePath" "$Url"
|
||||||
|
if ($LASTEXITCODE -ne 0) {
|
||||||
|
exit $LASTEXITCODE
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "Extracting $AssetName..." -ForegroundColor Cyan
|
||||||
|
Expand-Archive -Path $ArchivePath -DestinationPath $TargetDir -Force
|
||||||
|
Remove-Item $ArchivePath
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "Dependencies successfully deployed" -ForegroundColor Green
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import platform
|
||||||
|
import urllib.request
|
||||||
|
import zipfile
|
||||||
|
import shutil
|
||||||
|
|
||||||
|
ORGANIZATION = "moonlight-stream"
|
||||||
|
PREBUILT_REPO = "moonlight-qt-deps"
|
||||||
|
TAG = "v1.0.1"
|
||||||
|
|
||||||
|
def get_platform_config():
|
||||||
|
system = platform.system()
|
||||||
|
if system == "Darwin":
|
||||||
|
return "mac", "macos-universal.zip"
|
||||||
|
if system == "Linux":
|
||||||
|
return "steamlink", "steamlink.zip"
|
||||||
|
|
||||||
|
print(f"Error: Unsupported platform ({system})")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
def download_and_extract():
|
||||||
|
subfolder, asset_name = get_platform_config()
|
||||||
|
|
||||||
|
target_dir = os.path.join(os.getcwd(), "libs", subfolder)
|
||||||
|
url = f"https://github.com/{ORGANIZATION}/{PREBUILT_REPO}/releases/download/{TAG}/{asset_name}"
|
||||||
|
|
||||||
|
if os.path.exists(target_dir):
|
||||||
|
print("Cleaning target directory...")
|
||||||
|
shutil.rmtree(target_dir)
|
||||||
|
|
||||||
|
os.makedirs(target_dir, exist_ok=True)
|
||||||
|
|
||||||
|
archive_path = os.path.join(target_dir, asset_name)
|
||||||
|
|
||||||
|
print(f"Downloading {asset_name}...")
|
||||||
|
try:
|
||||||
|
urllib.request.urlretrieve(url, archive_path)
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Download failed: {e}")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
print(f"Extracting {asset_name}...")
|
||||||
|
with zipfile.ZipFile(archive_path, 'r') as zip_ref:
|
||||||
|
zip_ref.extractall(target_dir)
|
||||||
|
|
||||||
|
os.remove(archive_path)
|
||||||
|
print(f"Dependencies successfully deployed")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
download_and_extract()
|
||||||
Reference in New Issue
Block a user