diff --git a/.github/scripts/.Brewfile b/.github/scripts/.Brewfile index 8368e3d..abf230c 100644 --- a/.github/scripts/.Brewfile +++ b/.github/scripts/.Brewfile @@ -1,6 +1,5 @@ brew "ccache" brew "coreutils" -brew "cmake" brew "git" brew "jq" brew "xcbeautify" diff --git a/CMakeLists.txt b/CMakeLists.txt index 411b831..b73a10d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -154,6 +154,14 @@ string( dependencies qt6 version) +string( + JSON + qtversion_6_8_3 + GET + ${buildspec} + dependencies + "qt6-8-3" + version) if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin") install( @@ -181,4 +189,13 @@ if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows") DIRECTORY "${CMAKE_SOURCE_DIR}/.deps/obs-deps-qt6-${qtversion}-x64/plugins/tls" CONFIGURATIONS RelWithDebInfo Debug Release DESTINATION bin/64bit) + + install( + FILES "${CMAKE_SOURCE_DIR}/.deps/obs-deps-qt6-${qtversion_6_8_3}-x64/bin/Qt6WebSockets.dll" + CONFIGURATIONS RelWithDebInfo Debug Release + DESTINATION qt6.8.3/bin/64bit) + install( + DIRECTORY "${CMAKE_SOURCE_DIR}/.deps/obs-deps-qt6-${qtversion_6_8_3}-x64/plugins/tls" + CONFIGURATIONS RelWithDebInfo Debug Release + DESTINATION qt6.8.3/bin/64bit) endif() diff --git a/buildspec.json b/buildspec.json index b6b548c..166c0d0 100644 --- a/buildspec.json +++ b/buildspec.json @@ -10,12 +10,12 @@ } }, "prebuilt": { - "version": "2024-10-23", + "version": "2025-07-19", "baseUrl": "https://github.com/OPENSPHERE-Inc/obs-deps/releases/download", "label": "Pre-Built obs-deps", "hashes": { - "macos": "4fab193e5e933e790fb08f2baa605a04a43d398362be48f81513d9b58364ae19", - "windows-x64": "78f17500dc113e75789ac33c1ea4cfc5fc9af1511422d3916bc25567c75790a7" + "macos": "8b2d3ff3a250a34e40602f318a78988fb94658bb651b739601cc58a777cdfa58", + "windows-x64": "d9854677ec7582d1b967cf6a30477999ef762d6961749cc9c305bd4a111e8115" } }, "qt6": { @@ -29,6 +29,18 @@ "debugSymbols": { "windows-x64": "4c672a1cffd743c9960cebb5a164e8a418639b3fe98447a7d26d8c554cb5eab9" } + }, + "qt6-8-3": { + "version": "2025-07-19", + "baseUrl": "https://github.com/OPENSPHERE-Inc/obs-deps/releases/download", + "label": "Pre-Built Qt6.8.3", + "hashes": { + "macos": "1b30e78cac558bdb200b8b084039e5474391b7a5594d119e4ac28b6a8c165fa8", + "windows-x64": "5194771beccb72a153d1f5183d4c10926dd0c18495ae17aa4a3c5e35aae94b07" + }, + "debugSymbols": { + "windows-x64": "97ab5007d94c09e6d62b66ff2caff86d4f667fbcdc35280d05a9c248882296ea" + } } }, "platformConfig": { @@ -38,13 +50,11 @@ }, "name": "osi-src-link", "displayName": "SRC-Link Plugin", - "version": "0.7.6", + "version": "0.8.0", "author": "OPENSPHERE Inc.", "website": "https://opensphere.co.jp/", "email": "info@opensphere.co.jp", "uuids": { - "windowsApp": "AB75A815-F13E-6E1F-AA2A-C5AEE023DE2A", - "macosPackage": "133F9D45-ACA2-C38C-4F3D-8C8A220FC5B8", - "macosInstaller": "DE8376D7-4CC7-971E-BE93-C97E4F534144" + "windowsApp": "AB75A815-F13E-6E1F-AA2A-C5AEE023DE2A" } } diff --git a/cmake/macos/buildspec.cmake b/cmake/macos/buildspec.cmake index 6897c9d..75da499 100644 --- a/cmake/macos/buildspec.cmake +++ b/cmake/macos/buildspec.cmake @@ -18,7 +18,9 @@ function(_check_dependencies_macos) set(qt6_destination "obs-deps-qt6-VERSION-ARCH") set(obs-studio_filename "VERSION.tar.gz") set(obs-studio_destination "obs-studio-VERSION") - set(dependencies_list prebuilt qt6 obs-studio) + set(qt6-8-3_filename "macos-deps-qt6-VERSION-ARCH-REVISION.tar.xz") + set(qt6-8-3_destination "obs-deps-qt6-VERSION-ARCH") + set(dependencies_list prebuilt qt6 obs-studio qt6-8-3) _check_dependencies() diff --git a/cmake/windows/buildspec.cmake b/cmake/windows/buildspec.cmake index 75f2dca..adbf3bd 100644 --- a/cmake/windows/buildspec.cmake +++ b/cmake/windows/buildspec.cmake @@ -16,7 +16,9 @@ function(_check_dependencies_windows) set(qt6_destination "obs-deps-qt6-VERSION-ARCH") set(obs-studio_filename "VERSION.zip") set(obs-studio_destination "obs-studio-VERSION") - set(dependencies_list prebuilt qt6 obs-studio) + set(qt6-8-3_filename "windows-deps-qt6-VERSION-ARCH-REVISION.zip") + set(qt6-8-3_destination "obs-deps-qt6-VERSION-ARCH") + set(dependencies_list prebuilt qt6 obs-studio qt6-8-3) _check_dependencies() endfunction() diff --git a/cmake/windows/resources/installer-Windows.iss.in b/cmake/windows/resources/installer-Windows.iss.in index 666e674..ea06e88 100644 --- a/cmake/windows/resources/installer-Windows.iss.in +++ b/cmake/windows/resources/installer-Windows.iss.in @@ -26,29 +26,71 @@ SignTool=default Name: "english"; MessagesFile: "compiler:Default.isl" [Files] -Source: "..\release\Package\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "..\release\Package\*"; Excludes: "\qt6.8.3"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs Source: "..\LICENSE"; Flags: dontcopy +Source: "..\release\Package\qt6.8.3\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: BundleQt6_8_3 ; NOTE: Don't use "Flags: ignoreversion" on any shared system files +[Tasks] +Name: BundleQt6_8_3; Description: Install Qt6.8.3 supportive files (Required for OBS 31.1.0 or above); Flags: unchecked + [Icons] Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}" Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}" [Code] +function GetOBSStudioVersion(): Int64; +var + value: string; + version: Int64; +begin + Result := 0; + if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\OBS Studio', 'DisplayVersion', value) then + begin + if StrToVersion(value, version) then + begin + Result := version; + end; + end; +end; + procedure InitializeWizard(); var GPLText: AnsiString; - Page: TOutputMsgMemoWizardPage; + LicensePage: TOutputMsgMemoWizardPage; begin ExtractTemporaryFile('LICENSE'); LoadStringFromFile(ExpandConstant('{tmp}\LICENSE'), GPLText); - Page := CreateOutputMsgMemoPage(wpWelcome, + LicensePage := CreateOutputMsgMemoPage(wpWelcome, 'License Information', 'Please review the license terms before installing {#MyAppName}', 'Press Page Down to see the rest of the agreement. Once you are aware of your rights, click Next to continue.', String(GPLText) ); end; +procedure CurPageChanged(CurPageID: Integer); +var + OBSVersion: Int64; +begin + case CurPageID of + wpSelectTasks: begin + if WizardForm.TasksList.Items.Count > 0 then + begin + OBSVersion := GetOBSStudioVersion(); + Log(IntToStr(OBSVersion)); + if OBSVersion >= PackVersionComponents(31, 1, 0, 0) then + begin + WizardForm.TasksList.Checked[0] := True; + end else + begin + WizardForm.TasksList.Checked[0] := False; + WizardForm.TasksList.ItemEnabled[0] := False; + end; + end; + end; + end; +end; + // credit where it's due : // following function come from https://github.com/Xaymar/obs-studio_amf-encoder-plugin/blob/master/%23Resources/Installer.in.iss#L45 function GetDirName(Value: string): string; @@ -62,4 +104,3 @@ begin if RegQueryStringValue(HKLM32, 'SOFTWARE\OBS Studio', '', InstallPath) then Result := InstallPath end; - diff --git a/lib/obs-websocket b/lib/obs-websocket index eed8a49..40d26db 160000 --- a/lib/obs-websocket +++ b/lib/obs-websocket @@ -1 +1 @@ -Subproject commit eed8a49933786383d11f4868a4e5604a9ee303c6 +Subproject commit 40d26dbf4d29137bf88cd393a3031adb04d68bba