@@ -264,3 +264,61 @@ jobs:
264264 run : node --no-experimental-fetch src/ebmc/ebmc.js --version
265265 - name : Print ccache stats
266266 run : ccache -s
267+
268+ check-vs-2022-make-build-and-test :
269+ runs-on : windows-2022
270+ env :
271+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
272+ steps :
273+ - uses : actions/checkout@v4
274+ with :
275+ submodules : recursive
276+ - name : Setup MSBuild
277+ uses : microsoft/setup-msbuild@v2
278+ - name : Fetch dependencies
279+ run : |
280+ choco install -y --no-progress winflexbison3 strawberryperl wget
281+ if($LastExitCode -ne 0)
282+ {
283+ Write-Output "::error ::Dependency installation via Chocolatey failed."
284+ exit $LastExitCode
285+ }
286+ nuget install clcache -OutputDirectory "c:\tools" -ExcludeVersion -Version 4.1.0
287+ echo "c:\tools\clcache\clcache-4.1.0" >> $env:GITHUB_PATH
288+ echo "c:\Strawberry\" >> $env:GITHUB_PATH
289+ Invoke-WebRequest -Uri https://github.com/Z3Prover/z3/releases/download/z3-4.8.10/z3-4.8.10-x64-win.zip -OutFile .\z3.zip
290+ Expand-Archive -LiteralPath '.\z3.Zip' -DestinationPath C:\tools
291+ echo "c:\tools\z3-4.8.10-x64-win\bin;" >> $env:GITHUB_PATH
292+ New-Item -ItemType directory "C:\tools\parallel"
293+ wget.exe -O c:\tools\parallel\parallel https://git.savannah.gnu.org/cgit/parallel.git/plain/src/parallel
294+ echo "c:\tools\parallel" >> $env:GITHUB_PATH
295+ - name : Confirm z3 solver is available and log the version installed
296+ run : z3 --version
297+ - name : Initialise Developer Command Line
298+ uses : ilammy/msvc-dev-cmd@v1
299+ - name : Prepare ccache
300+ uses : actions/cache@v4
301+ with :
302+ save-always : true
303+ path : .ccache
304+ key : ${{ runner.os }}-msbuild-make-${{ github.ref }}-${{ github.sha }}-PR
305+ restore-keys : |
306+ ${{ runner.os }}-msbuild-make-${{ github.ref }}
307+ ${{ runner.os }}-msbuild-make
308+ - name : ccache environment
309+ run : |
310+ echo "CLCACHE_BASEDIR=$((Get-Item -Path '.\').FullName)" >> $env:GITHUB_ENV
311+ echo "CLCACHE_DIR=$pwd\.ccache" >> $env:GITHUB_ENV
312+ - name : Zero ccache stats and limit in size (2 GB)
313+ run : |
314+ clcache -z
315+ clcache -M 2147483648
316+ - name : Download minisat with make
317+ run : make -C lib/cbmc/src minisat2-download
318+ - name : Build EBMC with make
319+ env :
320+ # disable MSYS file-name mangling
321+ MSYS2_ARG_CONV_EXCL : " *"
322+ run : make CXX=clcache BUILD_ENV=MSVC -j4 -C src
323+ - name : Print ccache stats
324+ run : clcache -s
0 commit comments