# This file is a part of the UMSKT Project # # Copyleft (C) 2019-2023 UMSKT Contributors (et.al.) # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # # @FileCreated by TheTank20 on 06/13/2023 # @Maintainer Neo name: C/C++ CI (Windows) on: push: branches: [ "master" ] pull_request: branches: [ "master" ] jobs: build: runs-on: windows-latest strategy: matrix: include: - arch: Win32 OpenSSL-File: Win32OpenSSL-3_1_1.exe msbuild-arch: Win32 cmake-args: -D MSVC_MSDOS_STUB=umskt.exe - arch: Win64 OpenSSL-File: Win64OpenSSL-3_1_1.exe msbuild-arch: x64 cmake-args: "" steps: - name: Install Windows XP Support for Visual Studio uses: thepwrtank18/install-vs-components@v1.0.0 with: components: Microsoft.VisualStudio.Component.WinXP - name: Download And Install ${{ matrix.OpenSSL-File }} run: | $installDir = "$Env:ProgramFiles\OpenSSL" $installerURL = "https://slproweb.com/download/${{ matrix.OpenSSL-File }}" $installerName = "${{ matrix.OpenSSL-File }}" $installerPath = Join-Path -Path "${env:Temp}" -ChildPath "$installerName" (New-Object System.Net.WebClient).DownloadFile($installerURL, $installerPath) Remove-Item "$installDir" -Force -Recurse $installerArgs = '/silent', '/sp-', '/suppressmsgboxes', "/DIR=`"$installDir`"" Start-Process -FilePath $installerPath -ArgumentList $installerArgs -Wait -PassThru - name: Checkout Source Tree uses: actions/checkout@v3 - name: Setup MSBuild uses: microsoft/setup-msbuild@v1 - name: Run DJGPP Compilation if: ${{ matrix.arch }} == "Win32" uses: ./.github/workflows/dos-djgpp.yaml - name: Download UMSKT-DJGPP compiled artifact if: ${{ matrix.arch }} == "Win32" uses: actions/download-artifact@v3 with: name: UMSKT-DOS - name: Configure UMSKT uses: threeal/cmake-action@v1.2.0 with: working-directory: build generator: "Visual Studio 17 2022" options: CMAKE_SYSTEM_VERSION="5.1.2600" args: -A ${{ matrix.msbuild-arch }} -T v141_xp ${{ matrix.cmake-args }} - name: Build UMSKT working-directory: build run: msbuild ALL_BUILD.vcxproj /P:Configuration=Release /P:XPDeprecationWarning=false - name: Move executable to upload directory run: | mkdir build/actions_upload Move-Item build/umskt.exe build/actions_upload - name: Upload build artifact uses: actions/upload-artifact@v3.1.2 with: name: UMSKT-${{ matrix.arch }} path: build/actions_upload - name: Move Win32+DOS executable to upload directory if: ${{ matrix.arch }} == "Win32" run: | Remove-Item "build/actions_upload" -Force -Recurse mkdir build/actions_upload Move-Item build/umskt_win32_dos.exe build/actions_upload/umskt.exe - name: Upload build artifact if: ${{ matrix.arch }} == "Win32" uses: actions/upload-artifact@v3.1.2 with: name: UMSKT-Win32+DOS path: build/actions_upload