4 Commits
Author SHA1 Message Date
Lukas Dürrenberger 58d0990004 Resolve remaining zizmor findings in our workflows
- Pass matrix values and the workspace path to run steps through env
- Use bash as default shell for the release builds
- Drop the MinGW cache from the release builds to avoid cache poisoning
2026-10-04 21:46:35 +02:00
Lukas Dürrenberger fdef4c8747 Disable ClangCL CI jobs and pin clang-tidy to LLVM 18 2026-10-04 13:40:15 +02:00
Lukas Dürrenberger bad0295fb9 Harden our GitHub Actions workflows 2026-10-04 13:40:15 +02:00
Lukas Dürrenberger 9fe9c109af Update GitHub runner images and Actions versions
The new Windows runner images ship Visual Studio 2026, which requires CMake 4.2 or later.
2026-10-04 13:40:15 +02:00
4 changed files with 127 additions and 95 deletions

No files matched your search

+46 -26
View File
@@ -2,6 +2,8 @@ name: CI
on: [push, pull_request, workflow_dispatch] on: [push, pull_request, workflow_dispatch]
permissions: {}
concurrency: concurrency:
group: environment-${{github.ref}} group: environment-${{github.ref}}
cancel-in-progress: true cancel-in-progress: true
@@ -22,10 +24,11 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
platform: platform:
- { name: Windows VS2022 x86, os: windows-2025, flags: -AWin32 } - { name: Windows VS2026 x86, os: windows-2025-vs2026, flags: -AWin32 }
- { name: Windows VS2022 x64, os: windows-2025, flags: -Ax64 } - { name: Windows VS2026 x64, os: windows-2025-vs2026, flags: -Ax64 }
- { name: Windows ClangCL, os: windows-2025, flags: -T ClangCL } # ClangCL is disabled until we build against SFML 3.1, the FLAC version bundled with SFML 3.0 fails to compile with VS2026's ClangCL
- { name: Windows Clang, os: windows-2025, flags: -GNinja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ } # - { name: Windows ClangCL, os: windows-2025-vs2026, flags: -T ClangCL }
- { name: Windows Clang, os: windows-2025-vs2026, flags: -GNinja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ }
- { name: Linux GCC, os: ubuntu-24.04, flags: -GNinja } - { name: Linux GCC, os: ubuntu-24.04, flags: -GNinja }
- { name: Linux Clang, os: ubuntu-24.04, flags: -GNinja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ } - { name: Linux Clang, os: ubuntu-24.04, flags: -GNinja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ }
- { name: MacOS, os: macos-15, flags: -GNinja } - { name: MacOS, os: macos-15, flags: -GNinja }
@@ -40,7 +43,7 @@ jobs:
- name: Get CMake and Ninja - name: Get CMake and Ninja
uses: lukka/get-cmake@latest uses: lukka/get-cmake@latest
with: with:
cmakeVersion: ${{ runner.os == 'Windows' && '3.25' || '3.22' }} cmakeVersion: ${{ runner.os == 'Windows' && '4.2' || '3.22' }} # Visual Studio 2026 generator requires CMake 4.2 or later
ninjaVersion: latest ninjaVersion: latest
- name: Install Linux Dependencies - name: Install Linux Dependencies
@@ -48,44 +51,55 @@ jobs:
run: sudo apt-get update && sudo apt-get install libxrandr-dev libxcursor-dev libxi-dev libudev-dev libflac-dev libvorbis-dev libgl1-mesa-dev libegl1-mesa-dev libfreetype-dev run: sudo apt-get update && sudo apt-get install libxrandr-dev libxcursor-dev libxi-dev libudev-dev libflac-dev libvorbis-dev libgl1-mesa-dev libegl1-mesa-dev libfreetype-dev
- name: Checkout SFML - name: Checkout SFML
uses: actions/checkout@v6 uses: actions/checkout@v7
with: with:
persist-credentials: false
repository: SFML/SFML repository: SFML/SFML
ref: ${{env.SFML_VERSION}} ref: ${{env.SFML_VERSION}}
path: SFML path: SFML
- name: Configure SFML CMake - name: Configure SFML CMake
env:
BUILD_TYPE: ${{ matrix.type.name }}
CMAKE_FLAGS: ${{ matrix.platform.flags }} ${{ matrix.config.flags }}
run: | run: |
cmake -S SFML -B SFML/build \ cmake -S SFML -B SFML/build \
-DCMAKE_BUILD_TYPE=${{matrix.type.name}} \ -DCMAKE_BUILD_TYPE="$BUILD_TYPE" \
-DCMAKE_INSTALL_PREFIX=SFML/install \ -DCMAKE_INSTALL_PREFIX=SFML/install \
${{matrix.platform.flags}} \ $CMAKE_FLAGS
${{matrix.config.flags}}
- name: Build SFML - name: Build SFML
run: cmake --build SFML/build --config ${{matrix.type.name}} --target install env:
BUILD_TYPE: ${{ matrix.type.name }}
run: cmake --build SFML/build --config "$BUILD_TYPE" --target install
- name: Checkout CSFML - name: Checkout CSFML
uses: actions/checkout@v6 uses: actions/checkout@v7
with: with:
persist-credentials: false
path: CSFML path: CSFML
- name: Configure CSFML CMake - name: Configure CSFML CMake
env:
BUILD_TYPE: ${{ matrix.type.name }}
CMAKE_FLAGS: ${{ matrix.platform.flags }} ${{ matrix.config.flags }} ${{ matrix.config.csfml_flags }}
run: | run: |
cmake --preset dev -S CSFML -B CSFML/build \ cmake --preset dev -S CSFML -B CSFML/build \
-DCMAKE_BUILD_TYPE=${{matrix.type.name}} \ -DCMAKE_BUILD_TYPE="$BUILD_TYPE" \
-DCMAKE_INSTALL_PREFIX=CSFML/install \ -DCMAKE_INSTALL_PREFIX=CSFML/install \
-DSFML_ROOT=SFML/install \ -DSFML_ROOT=SFML/install \
-DCMAKE_VERBOSE_MAKEFILE=ON \ -DCMAKE_VERBOSE_MAKEFILE=ON \
${{matrix.platform.flags}} \ $CMAKE_FLAGS
${{matrix.config.flags}} \
${{matrix.config.csfml_flags}}
- name: Build CSFML - name: Build CSFML
run: cmake --build CSFML/build --config ${{matrix.type.name}} --target install env:
BUILD_TYPE: ${{ matrix.type.name }}
run: cmake --build CSFML/build --config "$BUILD_TYPE" --target install
- name: Test - name: Test
run: ctest --test-dir CSFML/build -C ${{matrix.type.name}} --output-on-failure env:
BUILD_TYPE: ${{ matrix.type.name }}
run: ctest --test-dir CSFML/build -C "$BUILD_TYPE" --output-on-failure
format: format:
name: Formatting name: Formatting
@@ -96,7 +110,9 @@ jobs:
run: sudo apt-get install clang-format-17 run: sudo apt-get install clang-format-17
- name: Checkout Code - name: Checkout Code
uses: actions/checkout@v6 uses: actions/checkout@v7
with:
persist-credentials: false
- name: Format Code - name: Format Code
run: cmake -DCLANG_FORMAT_EXECUTABLE=clang-format-17 -P cmake/Format.cmake run: cmake -DCLANG_FORMAT_EXECUTABLE=clang-format-17 -P cmake/Format.cmake
@@ -112,18 +128,19 @@ jobs:
- name: Get CMake and Ninja - name: Get CMake and Ninja
uses: lukka/get-cmake@latest uses: lukka/get-cmake@latest
with: with:
cmakeVersion: ${{ runner.os == 'Windows' && '3.25' || '3.22' }} cmakeVersion: ${{ runner.os == 'Windows' && '4.2' || '3.22' }} # Visual Studio 2026 generator requires CMake 4.2 or later
ninjaVersion: latest ninjaVersion: latest
- name: Install Dependencies - name: Install Dependencies
run: | run: |
brew update brew update
brew install llvm ninja brew install llvm@18 ninja
echo /opt/homebrew/opt/llvm/bin >> $GITHUB_PATH echo "$(brew --prefix llvm@18)/bin" >> $GITHUB_PATH
- name: Checkout SFML - name: Checkout SFML
uses: actions/checkout@v6 uses: actions/checkout@v7
with: with:
persist-credentials: false
repository: SFML/SFML repository: SFML/SFML
ref: ${{env.SFML_VERSION}} ref: ${{env.SFML_VERSION}}
path: SFML path: SFML
@@ -135,8 +152,9 @@ jobs:
run: cmake --build SFML/build --target install run: cmake --build SFML/build --target install
- name: Checkout CSFML - name: Checkout CSFML
uses: actions/checkout@v6 uses: actions/checkout@v7
with: with:
persist-credentials: false
path: CSFML path: CSFML
- name: Configure CSFML CMake - name: Configure CSFML CMake
@@ -153,7 +171,7 @@ jobs:
- name: Get CMake and Ninja - name: Get CMake and Ninja
uses: lukka/get-cmake@latest uses: lukka/get-cmake@latest
with: with:
cmakeVersion: ${{ runner.os == 'Windows' && '3.25' || '3.22' }} cmakeVersion: ${{ runner.os == 'Windows' && '4.2' || '3.22' }} # Visual Studio 2026 generator requires CMake 4.2 or later
ninjaVersion: latest ninjaVersion: latest
- name: Install Doxygen - name: Install Doxygen
@@ -162,8 +180,9 @@ jobs:
brew install doxygen ninja || true brew install doxygen ninja || true
- name: Checkout SFML - name: Checkout SFML
uses: actions/checkout@v6 uses: actions/checkout@v7
with: with:
persist-credentials: false
repository: SFML/SFML repository: SFML/SFML
ref: ${{env.SFML_VERSION}} ref: ${{env.SFML_VERSION}}
path: SFML path: SFML
@@ -175,8 +194,9 @@ jobs:
run: cmake --build SFML/build --target install run: cmake --build SFML/build --target install
- name: Checkout CSFML - name: Checkout CSFML
uses: actions/checkout@v6 uses: actions/checkout@v7
with: with:
persist-credentials: false
path: CSFML path: CSFML
- name: Configure CSFML - name: Configure CSFML
+32 -20
View File
@@ -9,6 +9,8 @@ on:
- "**" - "**"
workflow_dispatch: {} workflow_dispatch: {}
permissions: {}
concurrency: concurrency:
group: nuget-${{github.ref}} group: nuget-${{github.ref}}
cancel-in-progress: true cancel-in-progress: true
@@ -19,12 +21,13 @@ env:
jobs: jobs:
windows-x86-x64: windows-x86-x64:
name: Windows x86 x64 name: Windows x86 x64
runs-on: windows-2025 runs-on: windows-2025-vs2026
steps: steps:
- name: Checkout CSFML - name: Checkout CSFML
uses: actions/checkout@v6 uses: actions/checkout@v7
with: with:
persist-credentials: false
path: CSFML path: CSFML
- name: Build x86 - name: Build x86
@@ -40,19 +43,20 @@ jobs:
./build.win.ps1 "win-x64" ./build.win.ps1 "win-x64"
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v7
with: with:
name: CSFML-win-x86-x64 name: CSFML-win-x86-x64
path: CSFML/tools/nuget/CSFML/runtimes path: CSFML/tools/nuget/CSFML/runtimes
windows-arm64: windows-arm64:
name: Windows ARM64 name: Windows ARM64
runs-on: windows-11-arm runs-on: windows-11-vs2026-arm
steps: steps:
- name: Checkout CSFML - name: Checkout CSFML
uses: actions/checkout@v6 uses: actions/checkout@v7
with: with:
persist-credentials: false
path: CSFML path: CSFML
- name: Build ARM64 - name: Build ARM64
@@ -62,7 +66,7 @@ jobs:
./build.win.ps1 "win-arm64" ./build.win.ps1 "win-arm64"
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v7
with: with:
name: CSFML-win-arm64 name: CSFML-win-arm64
path: CSFML/tools/nuget/CSFML/runtimes path: CSFML/tools/nuget/CSFML/runtimes
@@ -75,8 +79,9 @@ jobs:
steps: steps:
- name: Checkout CSFML - name: Checkout CSFML
uses: actions/checkout@v6 uses: actions/checkout@v7
with: with:
persist-credentials: false
path: CSFML path: CSFML
- name: Build - name: Build
@@ -87,7 +92,7 @@ jobs:
./docker.linux-x64.sh ./docker.linux-x64.sh
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v7
with: with:
name: CSFML-linux-x64 name: CSFML-linux-x64
path: CSFML/tools/nuget/CSFML/runtimes path: CSFML/tools/nuget/CSFML/runtimes
@@ -98,8 +103,9 @@ jobs:
steps: steps:
- name: Checkout CSFML - name: Checkout CSFML
uses: actions/checkout@v6 uses: actions/checkout@v7
with: with:
persist-credentials: false
path: CSFML path: CSFML
- name: Install dependencies & cross compiler - name: Install dependencies & cross compiler
@@ -116,7 +122,7 @@ jobs:
./build.linux.sh linux-arm arm-linux-gnueabihf-g++ arm-linux-gnueabihf-gcc ./build.linux.sh linux-arm arm-linux-gnueabihf-g++ arm-linux-gnueabihf-gcc
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v7
with: with:
name: CSFML-linux-arm name: CSFML-linux-arm
path: CSFML/tools/nuget/CSFML/runtimes path: CSFML/tools/nuget/CSFML/runtimes
@@ -127,8 +133,9 @@ jobs:
steps: steps:
- name: Checkout CSFML - name: Checkout CSFML
uses: actions/checkout@v6 uses: actions/checkout@v7
with: with:
persist-credentials: false
path: CSFML path: CSFML
- name: Install dependencies - name: Install dependencies
@@ -144,7 +151,7 @@ jobs:
./build.linux.sh linux-arm64 ./build.linux.sh linux-arm64
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v7
with: with:
name: CSFML-linux-arm64 name: CSFML-linux-arm64
path: CSFML/tools/nuget/CSFML/runtimes path: CSFML/tools/nuget/CSFML/runtimes
@@ -157,8 +164,9 @@ jobs:
steps: steps:
- name: Checkout CSFML - name: Checkout CSFML
uses: actions/checkout@v6 uses: actions/checkout@v7
with: with:
persist-credentials: false
path: CSFML path: CSFML
- name: Build - name: Build
@@ -169,7 +177,7 @@ jobs:
./docker.linux-musl-x64.sh ./docker.linux-musl-x64.sh
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v7
with: with:
name: CSFML-linux-musl-x64 name: CSFML-linux-musl-x64
path: CSFML/tools/nuget/CSFML/runtimes path: CSFML/tools/nuget/CSFML/runtimes
@@ -180,8 +188,9 @@ jobs:
steps: steps:
- name: Checkout CSFML - name: Checkout CSFML
uses: actions/checkout@v6 uses: actions/checkout@v7
with: with:
persist-credentials: false
path: CSFML path: CSFML
- name: Install necessary tooling - name: Install necessary tooling
@@ -198,7 +207,7 @@ jobs:
./build.macos.sh "osx-arm64" ./build.macos.sh "osx-arm64"
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v7
with: with:
name: CSFML-macOS-x64-arm64 name: CSFML-macOS-x64-arm64
path: CSFML/tools/nuget/CSFML/runtimes path: CSFML/tools/nuget/CSFML/runtimes
@@ -216,11 +225,12 @@ jobs:
- macos-x64-arm64 - macos-x64-arm64
steps: steps:
- name: Checkout CSFML - name: Checkout CSFML
uses: actions/checkout@v6 uses: actions/checkout@v7
with: with:
persist-credentials: false
path: CSFML path: CSFML
- name: Download Artifacts - name: Download Artifacts
uses: actions/download-artifact@v7 uses: actions/download-artifact@v8
with: with:
path: CSFML/tools/nuget/CSFML/runtimes path: CSFML/tools/nuget/CSFML/runtimes
merge-multiple: true merge-multiple: true
@@ -230,7 +240,9 @@ jobs:
with: with:
dotnet-version: 10.0.x dotnet-version: 10.0.x
- name: Enforce SDK Version - name: Enforce SDK Version
run: dotnet new globaljson --sdk-version ${{ steps.setup-dotnet.outputs.dotnet-version }} --force env:
DOTNET_VERSION: ${{ steps.setup-dotnet.outputs.dotnet-version }}
run: dotnet new globaljson --sdk-version "$DOTNET_VERSION" --force
- name: Verify SDK Installation - name: Verify SDK Installation
run: dotnet --info run: dotnet --info
- name: Build NuGet Package - name: Build NuGet Package
@@ -238,7 +250,7 @@ jobs:
cd CSFML/tools/nuget cd CSFML/tools/nuget
dotnet build --configuration Release --verbosity detailed dotnet build --configuration Release --verbosity detailed
- name: Upload NuGet Package - name: Upload NuGet Package
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v7
with: with:
name: CSFML-NuGet-Package name: CSFML-NuGet-Package
path: CSFML/tools/nuget/CSFML/bin/Release/*.nupkg path: CSFML/tools/nuget/CSFML/bin/Release/*.nupkg
+48 -48
View File
@@ -9,6 +9,8 @@ on:
- "**" - "**"
workflow_dispatch: {} workflow_dispatch: {}
permissions: {}
concurrency: concurrency:
group: release-${{github.ref}} group: release-${{github.ref}}
cancel-in-progress: true cancel-in-progress: true
@@ -16,21 +18,17 @@ concurrency:
env: env:
SFML_VERSION: 3.0.2 SFML_VERSION: 3.0.2
defaults:
run:
shell: bash
jobs: jobs:
windows-x86: windows-x86:
name: Windows x86 name: Windows x86
runs-on: windows-2025 runs-on: windows-2025-vs2026
steps: steps:
- name: Cache MinGW x86
id: mingw-x86-cache
uses: actions/cache@v5
with:
path: ${{ github.workspace }}/mingw32
key: 15.2.0posix-13.0.0-ucrt-r1-x86
- name: Install MinGW x86 - name: Install MinGW x86
if: steps.mingw-x86-cache.outputs.cache-hit != 'true'
uses: bwoodsend/setup-winlibs-action@v1 uses: bwoodsend/setup-winlibs-action@v1
id: winlibs-32 id: winlibs-32
with: with:
@@ -41,30 +39,32 @@ jobs:
add_to_path: false add_to_path: false
- name: Checkout SFML - name: Checkout SFML
uses: actions/checkout@v6 uses: actions/checkout@v7
with: with:
persist-credentials: false
repository: SFML/SFML repository: SFML/SFML
ref: ${{ env.SFML_VERSION }} ref: ${{ env.SFML_VERSION }}
path: SFML path: SFML
- name: Checkout CSFML - name: Checkout CSFML
uses: actions/checkout@v6 uses: actions/checkout@v7
with: with:
persist-credentials: false
path: CSFML path: CSFML
- name: Build SFML - name: Build SFML
run: | run: |
cmake -S SFML -B SFML-build -A Win32 -G "Visual Studio 17 2022" -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/SFML-install -DCMAKE_VERBOSE_MAKEFILE=ON cmake -S SFML -B SFML-build -A Win32 -G "Visual Studio 18 2026" -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release "-DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/SFML-install" -DCMAKE_VERBOSE_MAKEFILE=ON
cmake --build SFML-build --config Release --target install cmake --build SFML-build --config Release --target install
- name: Build CSFML - name: Build CSFML
run: | run: |
cmake -S CSFML -B CSFML-build -A Win32 -G "Visual Studio 17 2022" -DBUILD_SHARED_LIBS=ON -DCSFML_LINK_SFML_STATICALLY=OFF -DCMAKE_BUILD_TYPE=Release -DSFML_ROOT=${{ github.workspace }}/SFML-install -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/CSFML-install -DCMAKE_VERBOSE_MAKEFILE=ON cmake -S CSFML -B CSFML-build -A Win32 -G "Visual Studio 18 2026" -DBUILD_SHARED_LIBS=ON -DCSFML_LINK_SFML_STATICALLY=OFF -DCMAKE_BUILD_TYPE=Release "-DSFML_ROOT=$GITHUB_WORKSPACE/SFML-install" "-DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/CSFML-install" -DCMAKE_VERBOSE_MAKEFILE=ON
cmake --build CSFML-build --config Release --target install cmake --build CSFML-build --config Release --target install
- name: Add MinGW to PATH - name: Add MinGW to PATH
shell: bash shell: bash
run: echo "${{ github.workspace }}\mingw32\bin" >> $GITHUB_PATH run: echo "$GITHUB_WORKSPACE\mingw32\bin" >> "$GITHUB_PATH"
- name: Generate Import Libs for MinGW - name: Generate Import Libs for MinGW
shell: pwsh shell: pwsh
@@ -99,25 +99,17 @@ jobs:
Move-Item -Path "CSFML-install\*" -Destination "install\CSFML" Move-Item -Path "CSFML-install\*" -Destination "install\CSFML"
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v7
with: with:
name: CSFML-windows-32-bit name: CSFML-windows-32-bit
path: install/CSFML path: install/CSFML
windows-x64: windows-x64:
name: Windows x64 name: Windows x64
runs-on: windows-2025 runs-on: windows-2025-vs2026
steps: steps:
- name: Cache MinGW x64
id: mingw-x64-cache
uses: actions/cache@v5
with:
path: ${{ github.workspace }}/mingw64
key: 15.2.0posix-13.0.0-ucrt-r1-x64
- name: Install MinGW x64 - name: Install MinGW x64
if: steps.mingw-x64-cache.outputs.cache-hit != 'true'
uses: bwoodsend/setup-winlibs-action@v1 uses: bwoodsend/setup-winlibs-action@v1
id: winlibs-64 id: winlibs-64
with: with:
@@ -128,30 +120,32 @@ jobs:
add_to_path: false add_to_path: false
- name: Checkout SFML - name: Checkout SFML
uses: actions/checkout@v6 uses: actions/checkout@v7
with: with:
persist-credentials: false
repository: SFML/SFML repository: SFML/SFML
ref: ${{ env.SFML_VERSION }} ref: ${{ env.SFML_VERSION }}
path: SFML path: SFML
- name: Checkout CSFML - name: Checkout CSFML
uses: actions/checkout@v6 uses: actions/checkout@v7
with: with:
persist-credentials: false
path: CSFML path: CSFML
- name: Build SFML - name: Build SFML
run: | run: |
cmake -S SFML -B SFML-build -A x64 -G "Visual Studio 17 2022" -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/SFML-install -DCMAKE_VERBOSE_MAKEFILE=ON cmake -S SFML -B SFML-build -A x64 -G "Visual Studio 18 2026" -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release "-DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/SFML-install" -DCMAKE_VERBOSE_MAKEFILE=ON
cmake --build SFML-build --config Release --target install cmake --build SFML-build --config Release --target install
- name: Build CSFML - name: Build CSFML
run: | run: |
cmake -S CSFML -B CSFML-build -A x64 -G "Visual Studio 17 2022" -DBUILD_SHARED_LIBS=ON -DCSFML_LINK_SFML_STATICALLY=OFF -DCMAKE_BUILD_TYPE=Release -DSFML_ROOT=${{ github.workspace }}/SFML-install -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/CSFML-install -DCMAKE_VERBOSE_MAKEFILE=ON cmake -S CSFML -B CSFML-build -A x64 -G "Visual Studio 18 2026" -DBUILD_SHARED_LIBS=ON -DCSFML_LINK_SFML_STATICALLY=OFF -DCMAKE_BUILD_TYPE=Release "-DSFML_ROOT=$GITHUB_WORKSPACE/SFML-install" "-DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/CSFML-install" -DCMAKE_VERBOSE_MAKEFILE=ON
cmake --build CSFML-build --config Release --target install cmake --build CSFML-build --config Release --target install
- name: Add MinGW to PATH - name: Add MinGW to PATH
shell: bash shell: bash
run: echo "${{ github.workspace }}\mingw64\bin" >> $GITHUB_PATH run: echo "$GITHUB_WORKSPACE\mingw64\bin" >> "$GITHUB_PATH"
- name: Generate Import Libs for MinGW - name: Generate Import Libs for MinGW
shell: pwsh shell: pwsh
@@ -186,36 +180,38 @@ jobs:
Move-Item -Path "CSFML-install\*" -Destination "install\CSFML" Move-Item -Path "CSFML-install\*" -Destination "install\CSFML"
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v7
with: with:
name: CSFML-windows-64-bit name: CSFML-windows-64-bit
path: install/CSFML path: install/CSFML
windows-arm64: windows-arm64:
name: Windows ARM64 name: Windows ARM64
runs-on: windows-2025 runs-on: windows-2025-vs2026
steps: steps:
- name: Checkout SFML - name: Checkout SFML
uses: actions/checkout@v6 uses: actions/checkout@v7
with: with:
persist-credentials: false
repository: SFML/SFML repository: SFML/SFML
ref: ${{ env.SFML_VERSION }} ref: ${{ env.SFML_VERSION }}
path: SFML path: SFML
- name: Checkout CSFML - name: Checkout CSFML
uses: actions/checkout@v6 uses: actions/checkout@v7
with: with:
persist-credentials: false
path: CSFML path: CSFML
- name: Build SFML - name: Build SFML
run: | run: |
cmake -S SFML -B SFML-build -A ARM64 -G "Visual Studio 17 2022" -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/SFML-install -DCMAKE_VERBOSE_MAKEFILE=ON cmake -S SFML -B SFML-build -A ARM64 -G "Visual Studio 18 2026" -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release "-DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/SFML-install" -DCMAKE_VERBOSE_MAKEFILE=ON
cmake --build SFML-build --config Release --target install cmake --build SFML-build --config Release --target install
- name: Build CSFML - name: Build CSFML
run: | run: |
cmake -S CSFML -B CSFML-build -A ARM64 -G "Visual Studio 17 2022" -DBUILD_SHARED_LIBS=ON -DCSFML_LINK_SFML_STATICALLY=OFF -DCMAKE_BUILD_TYPE=Release -DSFML_ROOT=${{ github.workspace }}/SFML-install -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/CSFML-install -DCMAKE_VERBOSE_MAKEFILE=ON cmake -S CSFML -B CSFML-build -A ARM64 -G "Visual Studio 18 2026" -DBUILD_SHARED_LIBS=ON -DCSFML_LINK_SFML_STATICALLY=OFF -DCMAKE_BUILD_TYPE=Release "-DSFML_ROOT=$GITHUB_WORKSPACE/SFML-install" "-DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/CSFML-install" -DCMAKE_VERBOSE_MAKEFILE=ON
cmake --build CSFML-build --config Release --target install cmake --build CSFML-build --config Release --target install
- name: Move Files - name: Move Files
@@ -225,7 +221,7 @@ jobs:
Move-Item -Path "CSFML-install\*" -Destination "install\CSFML" Move-Item -Path "CSFML-install\*" -Destination "install\CSFML"
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v7
with: with:
name: CSFML-windows-arm64 name: CSFML-windows-arm64
path: install/CSFML path: install/CSFML
@@ -236,15 +232,17 @@ jobs:
steps: steps:
- name: Checkout SFML - name: Checkout SFML
uses: actions/checkout@v6 uses: actions/checkout@v7
with: with:
persist-credentials: false
repository: SFML/SFML repository: SFML/SFML
ref: ${{ env.SFML_VERSION }} ref: ${{ env.SFML_VERSION }}
path: SFML path: SFML
- name: Checkout CSFML - name: Checkout CSFML
uses: actions/checkout@v6 uses: actions/checkout@v7
with: with:
persist-credentials: false
path: CSFML path: CSFML
- name: Build SFML - name: Build SFML
@@ -256,7 +254,7 @@ jobs:
-DCMAKE_CXX_FLAGS="-stdlib=libc++" \ -DCMAKE_CXX_FLAGS="-stdlib=libc++" \
-DBUILD_SHARED_LIBS=ON \ -DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/SFML-install \ "-DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/SFML-install" \
-DCMAKE_OSX_ARCHITECTURES=x86_64 \ -DCMAKE_OSX_ARCHITECTURES=x86_64 \
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 \ -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 \
-DSFML_BUILD_FRAMEWORKS=OFF \ -DSFML_BUILD_FRAMEWORKS=OFF \
@@ -272,10 +270,10 @@ jobs:
-DCMAKE_CXX_FLAGS="-stdlib=libc++" \ -DCMAKE_CXX_FLAGS="-stdlib=libc++" \
-DBUILD_SHARED_LIBS=ON \ -DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/CSFML-install \ "-DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/CSFML-install" \
-DCMAKE_OSX_ARCHITECTURES=x86_64 \ -DCMAKE_OSX_ARCHITECTURES=x86_64 \
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 \ -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 \
-DSFML_ROOT=${{ github.workspace }}/SFML-install \ "-DSFML_ROOT=$GITHUB_WORKSPACE/SFML-install" \
-DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_VERBOSE_MAKEFILE=ON
cmake --build CSFML-build --config Release --target install cmake --build CSFML-build --config Release --target install
@@ -288,7 +286,7 @@ jobs:
tar -zcvf CSFML-macOS-clang-64-bit.tar.gz CSFML-macOS-clang-64-bit tar -zcvf CSFML-macOS-clang-64-bit.tar.gz CSFML-macOS-clang-64-bit
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v7
with: with:
name: CSFML-macOS-clang-64-bit name: CSFML-macOS-clang-64-bit
path: CSFML-macOS-clang-64-bit.tar.gz path: CSFML-macOS-clang-64-bit.tar.gz
@@ -299,15 +297,17 @@ jobs:
steps: steps:
- name: Checkout SFML - name: Checkout SFML
uses: actions/checkout@v6 uses: actions/checkout@v7
with: with:
persist-credentials: false
repository: SFML/SFML repository: SFML/SFML
ref: ${{ env.SFML_VERSION }} ref: ${{ env.SFML_VERSION }}
path: SFML path: SFML
- name: Checkout CSFML - name: Checkout CSFML
uses: actions/checkout@v6 uses: actions/checkout@v7
with: with:
persist-credentials: false
path: CSFML path: CSFML
- name: Build SFML - name: Build SFML
run: | run: |
@@ -318,7 +318,7 @@ jobs:
-DCMAKE_CXX_FLAGS="-stdlib=libc++" \ -DCMAKE_CXX_FLAGS="-stdlib=libc++" \
-DBUILD_SHARED_LIBS=ON \ -DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/SFML-install \ "-DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/SFML-install" \
-DCMAKE_OSX_ARCHITECTURES=arm64 \ -DCMAKE_OSX_ARCHITECTURES=arm64 \
-DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 \ -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 \
-DSFML_BUILD_FRAMEWORKS=OFF \ -DSFML_BUILD_FRAMEWORKS=OFF \
@@ -334,10 +334,10 @@ jobs:
-DCMAKE_CXX_FLAGS="-stdlib=libc++" \ -DCMAKE_CXX_FLAGS="-stdlib=libc++" \
-DBUILD_SHARED_LIBS=ON \ -DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/CSFML-install \ "-DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/CSFML-install" \
-DCMAKE_OSX_ARCHITECTURES=arm64 \ -DCMAKE_OSX_ARCHITECTURES=arm64 \
-DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 \ -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 \
-DSFML_ROOT=${{ github.workspace }}/SFML-install \ "-DSFML_ROOT=$GITHUB_WORKSPACE/SFML-install" \
-DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_VERBOSE_MAKEFILE=ON
cmake --build CSFML-build --config Release --target install cmake --build CSFML-build --config Release --target install
@@ -350,7 +350,7 @@ jobs:
tar -zcvf CSFML-macOS-clang-arm64.tar.gz CSFML-macOS-clang-arm64 tar -zcvf CSFML-macOS-clang-arm64.tar.gz CSFML-macOS-clang-arm64
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v7
with: with:
name: CSFML-macOS-clang-arm64 name: CSFML-macOS-clang-arm64
path: CSFML-macOS-clang-arm64.tar.gz path: CSFML-macOS-clang-arm64.tar.gz
+1 -1
View File
@@ -17,7 +17,7 @@ if (-not $RID) {
exit exit
} }
$Generator = 'Visual Studio 17 2022' $Generator = 'Visual Studio 18 2026'
# See also: https://learn.microsoft.com/en-us/dotnet/core/rid-catalog#known-rids # See also: https://learn.microsoft.com/en-us/dotnet/core/rid-catalog#known-rids
switch ($RID) { switch ($RID) {