name: Build Windows DLL on: push: branches: [main] workflow_dispatch: jobs: build-windows: runs-on: windows-latest steps: - uses: actions/checkout@v4 - name: Set up Visual Studio environment uses: ilammy/msvc-dev-cmd@v1 with: arch: x64 - name: Download OBS Studio source run: | Invoke-WebRequest -Uri "https://github.com/obsproject/obs-studio/archive/refs/tags/31.1.0.zip" -OutFile obs-studio.zip Expand-Archive -Path obs-studio.zip -DestinationPath C:\ Rename-Item "C:\obs-studio-31.1.0" "C:\obs-studio" - name: Download OBS pre-built dependencies run: | Invoke-WebRequest -Uri "https://github.com/obsproject/obs-deps/releases/download/2025-05-23/windows-x64-2025-05-23.tar.gz" -OutFile obs-deps.tar.gz mkdir C:\obs-deps tar -xzf obs-deps.tar.gz -C C:\obs-deps - name: Download Qt6 run: | Invoke-WebRequest -Uri "https://github.com/obsproject/obs-deps/releases/download/2025-05-23/windows-x64-qt6-2025-05-23.tar.gz" -OutFile qt6.tar.gz mkdir C:\qt6 tar -xzf qt6.tar.gz -C C:\qt6 - name: Build OBS Studio libraries run: | cd C:\obs-studio cmake -S . -B build_x64 ` -G "Visual Studio 17 2022" -A x64 ` -DENABLE_PLUGINS=OFF ` -DENABLE_UI=OFF ` -DENABLE_SCRIPTING=OFF ` -DCMAKE_BUILD_TYPE=Release cmake --build build_x64 --config Release --target libobs -- /m cmake --build build_x64 --config Release --target obs-frontend-api -- /m - name: Build plugin run: | cd ${{ github.workspace }} cmake -S . -B build ` -G "Visual Studio 17 2022" -A x64 ` -DBUILD_OUT_OF_TREE=On ` -Dlibobs_DIR="C:/obs-studio/build_x64/libobs" ` -Dobs-frontend-api_DIR="C:/obs-studio/build_x64/UI/obs-frontend-api" ` -DCMAKE_PREFIX_PATH="C:/obs-deps;C:/qt6" ` -DQt6_DIR="C:/qt6/lib/cmake/Qt6" cmake --build build --config Release -- /m - name: Upload DLL uses: actions/upload-artifact@v4 with: name: vulcast-vertical-windows-x64 path: build/Release/vulcast-vertical.dll