name: Build C++ DLL # Trigger on: # - PRs targeting main/master that touch C++ source (compile check before merge) # - Version tag pushes (e.g. v1.7.0) # - Manual dispatch on: pull_request: branches: [main, master] push: tags: - 'v*' workflow_dispatch: env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true permissions: contents: write jobs: # ── Build x64 and Win32 release DLLs ───────────────────────────────────────── build: runs-on: windows-2022 strategy: matrix: include: - platform: x64 msbuild_platform: x64 - platform: x86 msbuild_platform: Win32 - platform: arm64 msbuild_platform: ARM64 steps: - name: Checkout repository uses: actions/checkout@v6 - name: Setup MSBuild uses: microsoft/setup-msbuild@v3 # Override the v120 platform toolset with the VS 2022 toolset (v143). # The rdpwrap C++ source is standard Win32 API code and compiles cleanly # with any modern MSVC version. - name: Build rdpwrap.dll (${{ matrix.platform }}) working-directory: src-x86-x64-Fusix run: | msbuild RDPWrap.vcxproj ` /p:Configuration=Release ` /p:Platform="${{ matrix.msbuild_platform }}" ` /p:PlatformToolset=v143 ` /p:WindowsTargetPlatformVersion=10.0 - name: Upload ${{ matrix.platform }} artifact uses: actions/upload-artifact@v4 with: name: rdpwrap-dll-${{ matrix.platform }} path: src-x86-x64-Fusix/Release/${{ matrix.platform }}/rdpwrap.dll if-no-files-found: error # NOTE: Full GitHub Releases (including rdpwrap DLLs) are published by build-and-release.yml. # This workflow stops at the artifact upload step so that partial releases are never # created on tag pushes. Run build-and-release.yml to produce the canonical release.