Skip to content

Initial Commit

Initial Commit #118

Workflow file for this run

name: Windows x86_64
on: [push, pull_request]
env:
BUILD_TYPE: Release
jobs:
build:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
arch: [x86]
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Install vcpkg
run: |
git clone https://github.com/microsoft/vcpkg.git
.\vcpkg\bootstrap-vcpkg.bat
echo "VCPKG_ROOT=$(pwd)/vcpkg" >> $GITHUB_ENV
echo "CMAKE_TOOLCHAIN_FILE=$(pwd)/vcpkg/scripts/buildsystems/vcpkg.cmake" >> $GITHUB_ENV
- name: Install GTest
run: |
vcpkg search gtest
vcpkg install gtest:x64-windows
vcpkg integrate install
- name: Setup CMake and Ninja
uses: lukka/[email protected]
- name: Setup MSVC
uses: ilammy/msvc-dev-cmd@v1
- name: Check MSVC Version
run: |
try {
$versionOutput = cl 2>&1
$match = $versionOutput | Select-String -Pattern "Version (\d+\.\d+)"
if ($match) {
$version = [Version]$match.Matches.Groups[1].Value
Write-Output "MSVC version found: $version"
if ($version -lt [Version]"19.28") {
throw "MSVC version is less than 19.28"
}
} else {
Write-Output "MSVC version could not be determined. Skipping version check."
echo "::set-output name=skip_step::true"
}
} catch {
throw $_
}
shell: pwsh
id: check_msvc
- name: Create build directory
if: steps.check_msvc.outputs.skip_step != 'true'
run: mkdir build
- name: Configure CMake
if: steps.check_msvc.outputs.skip_step != 'true'
run: cmake -S . -B build -DBUILD_THREADPOOL_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake
- name: Build
run: cmake --build build --config ${{ env.BUILD_TYPE }} --verbose
- name: List build and lib directory contents
run: |
ls -R build/
ls -R build/lib/
- name: Test
working-directory: build
run: ctest --output-on-failure -C ${{ env.BUILD_TYPE }}
- name: Diagnostics if build fails
if: failure()
run: |
echo "Build failed. Listing build directory contents:"
ls -R build/
Get-ChildItem -Path .\lib\Release\ -Recurse -Name
shell: pwsh