Author SHA1 Message Date
Chris Thrasher 9a2f59eb13 Add tests for sfListener 2024-12-24 11:31:40 -06:00
38 changed files with 370 additions and 978 deletions

No files matched your search

-1
View File
@@ -23,7 +23,6 @@ Checks: >
-cppcoreguidelines-pro-type-const-cast,
-cppcoreguidelines-pro-type-reinterpret-cast,
-cppcoreguidelines-special-member-functions,
-cppcoreguidelines-use-enum-class,
-modernize-avoid-c-arrays,
-modernize-macro-to-enum,
-modernize-redundant-void-arg,
+9 -21
View File
@@ -7,7 +7,7 @@ concurrency:
cancel-in-progress: true
env:
SFML_VERSION: 3.0.1
SFML_VERSION: 3.0.0
defaults:
run:
@@ -22,10 +22,12 @@ jobs:
fail-fast: false
matrix:
platform:
- { name: Windows VS2022 x86, os: windows-2025, flags: -AWin32 }
- { name: Windows VS2022 x64, os: windows-2025, flags: -Ax64 }
- { name: Windows ClangCL, os: windows-2025, flags: -T ClangCL }
- { name: Windows Clang, os: windows-2025, flags: -GNinja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ }
- { name: Windows VS2019 x86, os: windows-2019, flags: -AWin32 }
- { name: Windows VS2019 x64, os: windows-2019, flags: -Ax64 }
- { name: Windows VS2022 x86, os: windows-2022, flags: -AWin32 }
- { name: Windows VS2022 x64, os: windows-2022, flags: -Ax64 }
- { name: Windows ClangCL, os: windows-2022, flags: -T ClangCL }
- { name: Windows Clang, os: windows-2022, flags: -GNinja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ }
- { name: Linux GCC, os: ubuntu-22.04, flags: -GNinja }
- { name: Linux Clang, os: ubuntu-22.04, flags: -GNinja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ }
- { name: MacOS, os: macos-14, flags: -GNinja }
@@ -40,7 +42,6 @@ jobs:
- name: Get CMake and Ninja
uses: lukka/get-cmake@latest
with:
cmakeVersion: ${{ runner.os == 'Windows' && '3.25' || '3.22' }}
ninjaVersion: latest
- name: Install Linux Dependencies
@@ -55,12 +56,7 @@ jobs:
path: SFML
- name: Configure SFML CMake
run: |
cmake -S SFML -B SFML/build \
-DCMAKE_BUILD_TYPE=${{matrix.type.name}} \
-DCMAKE_INSTALL_PREFIX=SFML/install \
${{matrix.platform.flags}} \
${{matrix.config.flags}}
run: cmake -S SFML -B SFML/build -DCMAKE_INSTALL_PREFIX=SFML/install ${{matrix.platform.flags}} ${{matrix.config.flags}} -DCMAKE_BUILD_TYPE=${{matrix.type.name}}
- name: Build SFML
run: cmake --build SFML/build --config ${{matrix.type.name}} --target install
@@ -71,15 +67,7 @@ jobs:
path: CSFML
- name: Configure CSFML CMake
run: |
cmake --preset dev -S CSFML -B CSFML/build \
-DCMAKE_BUILD_TYPE=${{matrix.type.name}} \
-DCMAKE_INSTALL_PREFIX=CSFML/install \
-DSFML_ROOT=SFML/install \
-DCMAKE_VERBOSE_MAKEFILE=ON \
${{matrix.platform.flags}} \
${{matrix.config.flags}} \
${{matrix.config.csfml_flags}}
run: cmake --preset dev -S CSFML -B CSFML/build -DCMAKE_INSTALL_PREFIX=CSFML/install -DSFML_ROOT=SFML/install -DCMAKE_VERBOSE_MAKEFILE=ON ${{matrix.platform.flags}} ${{matrix.config.flags}} ${{matrix.config.csfml_flags}} -DCMAKE_BUILD_TYPE=${{matrix.type.name}}
- name: Build CSFML
run: cmake --build CSFML/build --config ${{matrix.type.name}} --target install
+215 -197
View File
@@ -1,234 +1,252 @@
name: NuGet Release
on:
push:
branches:
- master
- 2.6.x
tags:
- "**"
workflow_dispatch: {}
push:
branches:
- master
- 2.6.x
workflow_dispatch: {}
concurrency:
group: nuget-${{github.ref}}
cancel-in-progress: true
group: nuget-${{github.ref}}
cancel-in-progress: true
env:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_CLI_TELEMETRY_OPTOUT: 1
jobs:
windows:
name: Windows VS2022
runs-on: windows-2025
windows:
name: Windows VS2022
runs-on: windows-2022
steps:
- name: Checkout CSFML
uses: actions/checkout@v4
with:
path: CSFML
steps:
- name: Checkout CSFML
uses: actions/checkout@v4
with:
path: CSFML
- name: Build x86
shell: pwsh
run: |
cd CSFML/tools/nuget
./build.win.ps1 "win-x86"
- name: Build x86
shell: pwsh
run: |
cd CSFML/tools/nuget
./build.win.ps1 "win-x86"
- name: Build x64
shell: pwsh
run: |
cd CSFML/tools/nuget
./build.win.ps1 "win-x64"
- name: Build x64
shell: pwsh
run: |
cd CSFML/tools/nuget
./build.win.ps1 "win-x64"
- name: Build ARM64
shell: pwsh
run: |
cd CSFML/tools/nuget
./build.win.ps1 "win-arm64"
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: CSFML-win-x86-x64
path: CSFML/tools/nuget/CSFML/runtimes
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: CSFML-win-x86-x64-arm64
path: CSFML/tools/nuget/CSFML/runtimes
linux-x64:
name: Linux x64
runs-on: ubuntu-22.04
container:
image: ubuntu:22.04
linux-x64:
name: Linux x64
runs-on: ubuntu-22.04
container:
image: ubuntu:22.04
steps:
- name: Checkout CSFML
uses: actions/checkout@v4
with:
path: CSFML
steps:
- name: Checkout CSFML
uses: actions/checkout@v4
with:
path: CSFML
- name: Build
shell: bash
run: |
cd ./CSFML/tools/nuget
chmod +x ./docker.linux-x64.sh
./docker.linux-x64.sh
- name: Build
shell: bash
run: |
cd ./CSFML/tools/nuget
chmod +x ./docker.linux-x64.sh
./docker.linux-x64.sh
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: CSFML-linux-x64
path: CSFML/tools/nuget/CSFML/runtimes
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: CSFML-linux-x64
path: CSFML/tools/nuget/CSFML/runtimes
linux-arm:
name: Linux ARM
runs-on: ubuntu-22.04
linux-arm:
name: Linux ARM
runs-on: ubuntu-22.04
steps:
- name: Checkout CSFML
uses: actions/checkout@v4
with:
path: CSFML
steps:
- name: Checkout CSFML
uses: actions/checkout@v4
with:
path: CSFML
- name: Build in an ARM container
uses: uraimo/run-on-arch-action@v2.7.2
with:
arch: armv7
distro: ubuntu22.04
githubToken: ${{ github.token }}
dockerRunArgs: |
--volume "${PWD}/CSFML:/CSFML"
install: |
apt-get update -y
apt-get install -y git libfreetype6-dev xorg-dev libxrandr-dev libxcursor-dev libxi-dev libudev-dev libgl1-mesa-dev libflac-dev libogg-dev libvorbis-dev cmake g++
run: |
cd /CSFML/tools/nuget
chmod +x ./build.linux.sh
./build.linux.sh linux-arm
- name: Build in an ARM container
uses: uraimo/run-on-arch-action@v3.0.1
with:
arch: armv7
distro: ubuntu22.04
githubToken: ${{ github.token }}
dockerRunArgs: |
--volume "${PWD}/CSFML:/CSFML"
install: |
apt-get update -y
apt-get install -y git libfreetype6-dev xorg-dev libxrandr-dev libxcursor-dev libxi-dev libudev-dev libgl1-mesa-dev libflac-dev libogg-dev libvorbis-dev cmake g++
run: |
cd /CSFML/tools/nuget
chmod +x ./build.linux.sh
./build.linux.sh linux-arm
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: CSFML-linux-arm
path: CSFML/tools/nuget/CSFML/runtimes
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: CSFML-linux-arm
path: CSFML/tools/nuget/CSFML/runtimes
linux-arm64:
name: Linux ARM64
runs-on: ubuntu-22.04
linux-arm64:
name: Linux ARM64
runs-on: ubuntu-22.04
steps:
- name: Checkout CSFML
uses: actions/checkout@v4
with:
path: CSFML
steps:
- name: Checkout CSFML
uses: actions/checkout@v4
with:
path: CSFML
- name: Build in an ARM64 container
uses: uraimo/run-on-arch-action@v2.7.2
with:
arch: aarch64
distro: ubuntu22.04
githubToken: ${{ github.token }}
dockerRunArgs: |
--volume "${PWD}/CSFML:/CSFML"
install: |
apt-get update -y
apt-get install -y git libfreetype6-dev xorg-dev libxrandr-dev libxcursor-dev libudev-dev libgl1-mesa-dev libflac-dev libogg-dev libvorbis-dev cmake g++
run: |
cd /CSFML/tools/nuget
chmod +x ./build.linux.sh
./build.linux.sh linux-arm64
- name: Build in an ARM64 container
uses: uraimo/run-on-arch-action@v3.0.1
with:
arch: aarch64
distro: ubuntu22.04
githubToken: ${{ github.token }}
dockerRunArgs: |
--volume "${PWD}/CSFML:/CSFML"
install: |
apt-get update -y
apt-get install -y git libfreetype6-dev xorg-dev libxrandr-dev libxcursor-dev libudev-dev libgl1-mesa-dev libflac-dev libogg-dev libvorbis-dev cmake g++
run: |
cd /CSFML/tools/nuget
chmod +x ./build.linux.sh
./build.linux.sh linux-arm64
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: CSFML-linux-arm64
path: CSFML/tools/nuget/CSFML/runtimes
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: CSFML-linux-arm64
path: CSFML/tools/nuget/CSFML/runtimes
linux-musl-x64:
name: Linux MUSL x64
runs-on: ubuntu-22.04
container:
image: alpine:3.20.3
linux-musl-x64:
name: Linux MUSL x64
runs-on: ubuntu-22.04
container:
image: alpine:3.20.7
steps:
- name: Checkout CSFML
uses: actions/checkout@v4
with:
path: CSFML
steps:
- name: Checkout CSFML
uses: actions/checkout@v4
with:
path: CSFML
- name: Build
shell: sh
run: |
cd ./CSFML/tools/nuget
chmod +x ./docker.linux-musl-x64.sh
./docker.linux-musl-x64.sh
- name: Build
shell: sh
run: |
cd ./CSFML/tools/nuget
chmod +x ./docker.linux-musl-x64.sh
./docker.linux-musl-x64.sh
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: CSFML-linux-musl-x64
path: CSFML/tools/nuget/CSFML/runtimes
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: CSFML-linux-musl-x64
path: CSFML/tools/nuget/CSFML/runtimes
fedora-x64:
name: Fedora x64
runs-on: ubuntu-22.04
container:
image: fedora:37
macos:
name: macOS
runs-on: macos-14
steps:
- name: Checkout CSFML
uses: actions/checkout@v4
with:
path: CSFML
steps:
- name: Checkout CSFML
uses: actions/checkout@v4
with:
path: CSFML
- name: Build
shell: bash
run: |
cd ./CSFML/tools/nuget
chmod +x ./docker.fedora-x64.sh
./docker.fedora-x64.sh
- name: Install necessary tooling
run: brew install coreutils
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: CSFML-fedora-x64
path: CSFML/tools/nuget/CSFML/runtimes
- name: Build x64
run: |
cd CSFML/tools/nuget
./build.macos.sh "osx-x64"
macos:
name: macOS
runs-on: macos-14
- name: Build ARM64
run: |
cd CSFML/tools/nuget
./build.macos.sh "osx-arm64"
steps:
- name: Checkout CSFML
uses: actions/checkout@v4
with:
path: CSFML
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: CSFML-macOS-x64-arm64
path: CSFML/tools/nuget/CSFML/runtimes
- name: Install necessary tooling
run: brew install coreutils
package:
name: Package Builds
runs-on: ubuntu-24.04
needs:
- windows
- linux-x64
- linux-arm
- linux-arm64
- linux-musl-x64
- macos
steps:
- name: Checkout CSFML
uses: actions/checkout@v4
with:
path: CSFML
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
path: CSFML/tools/nuget/CSFML/runtimes
merge-multiple: true
- name: Setup .NET 8 SDK
id: setup-dotnet
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
- name: Enforce SDK Version
run: dotnet new globaljson --sdk-version ${{ steps.setup-dotnet.outputs.dotnet-version }} --force
- name: Verify SDK Installation
run: dotnet --info
- name: Build NuGet Package
run: |
cd CSFML/tools/nuget
dotnet build --configuration Release --verbosity detailed
- name: Upload NuGet Package
uses: actions/upload-artifact@v4
with:
name: CSFML-NuGet-Package
path: CSFML/tools/nuget/CSFML/bin/Release/*.nupkg
- name: Build x64
run: |
cd CSFML/tools/nuget
./build.macos.sh "osx-x64"
- name: Build ARM64
run: |
cd CSFML/tools/nuget
./build.macos.sh "osx-arm64"
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: CSFML-macOS-x64-arm64
path: CSFML/tools/nuget/CSFML/runtimes
package:
name: Package Builds
runs-on: ubuntu-22.04
needs:
- windows
- linux-x64
- linux-arm
- linux-arm64
- linux-musl-x64
- fedora-x64
- macos
steps:
- name: Checkout CSFML
uses: actions/checkout@v4
with:
path: CSFML
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
path: CSFML/tools/nuget/CSFML/runtimes
merge-multiple: true
- name: Setup .NET 8 SDK
id: setup-dotnet
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
- name: Enforce SDK Version
run: dotnet new globaljson --sdk-version ${{ steps.setup-dotnet.outputs.dotnet-version }} --force
- name: Verify SDK Installation
run: dotnet --info
- name: Build NuGet Package
run: |
cd CSFML/tools/nuget
dotnet build --configuration Release --verbosity detailed
- name: Upload NuGet Package
uses: actions/upload-artifact@v4
with:
name: CSFML-NuGet-Package
path: CSFML/tools/nuget/CSFML/bin/Release/*.nupkg
-356
View File
@@ -1,356 +0,0 @@
name: Release Builds
on:
push:
branches:
- master
- 2.6.x
tags:
- "**"
workflow_dispatch: {}
concurrency:
group: release-${{github.ref}}
cancel-in-progress: true
env:
SFML_VERSION: 3.0.1
jobs:
windows-x86:
name: Windows x86
runs-on: windows-2025
steps:
- name: Cache MinGW x86
id: mingw-x86-cache
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/mingw32
key: 15.2.0posix-13.0.0-ucrt-r1-x86
- name: Install MinGW x86
if: steps.mingw-x86-cache.outputs.cache-hit != 'true'
uses: bwoodsend/setup-winlibs-action@v1
id: winlibs-32
with:
tag: 15.2.0posix-13.0.0-ucrt-r1
with_clang: false
architecture: 32
destination: ${{ github.workspace }}
add_to_path: false
- name: Checkout SFML
uses: actions/checkout@v4
with:
repository: SFML/SFML
ref: ${{ env.SFML_VERSION }}
path: SFML
- name: Checkout CSFML
uses: actions/checkout@v4
with:
path: CSFML
- name: Build SFML
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 --build SFML-build --config Release --target install
- name: Build CSFML
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 --build CSFML-build --config Release --target install
- name: Add MinGW to PATH
shell: bash
run: echo "${{ github.workspace }}\mingw32\bin" >> $GITHUB_PATH
- name: Generate Import Libs for MinGW
shell: pwsh
run: |
New-Item -ItemType "directory" -PATH "CSFML-install\lib\gcc"
New-Item -ItemType "directory" -PATH "CSFML-install\lib\msvc"
Move-Item -Path "CSFML-install\lib\*.lib" -Destination "CSFML-install\lib\msvc"
Push-Location CSFML-install\lib\gcc
& gendef.exe "..\..\bin\csfml-graphics-3.dll"
& dlltool.exe -d "csfml-graphics-3.def" -D "..\..\bin\csfml-graphics-3.dll" -l "libcsfml-graphics.a"
Remove-Item -Path "csfml-graphics-3.def"
& gendef.exe "..\..\bin\csfml-window-3.dll"
& dlltool.exe -d "csfml-window-3.def" -D "..\..\bin\csfml-window-3.dll" -l "libcsfml-window.a"
Remove-Item -Path "csfml-window-3.def"
& gendef.exe "..\..\bin\csfml-audio-3.dll"
& dlltool.exe -d "csfml-audio-3.def" -D "..\..\bin\csfml-audio-3.dll" -l "libcsfml-audio.a"
Remove-Item -Path "csfml-audio-3.def"
& gendef.exe "..\..\bin\csfml-network-3.dll"
& dlltool.exe -d "csfml-network-3.def" -D "..\..\bin\csfml-network-3.dll" -l "libcsfml-network.a"
Remove-Item -Path "csfml-network-3.def"
& gendef.exe "..\..\bin\csfml-system-3.dll"
& dlltool.exe -d "csfml-system-3.def" -D "..\..\bin\csfml-system-3.dll" -l "libcsfml-system.a"
Remove-Item -Path "csfml-system-3.def"
Pop-Location
New-Item -ItemType "directory" -PATH "install\CSFML"
Move-Item -Path "CSFML-install\*" -Destination "install\CSFML"
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: CSFML-windows-32-bit
path: install/CSFML
windows-x64:
name: Windows x64
runs-on: windows-2025
steps:
- name: Cache MinGW x64
id: mingw-x64-cache
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/mingw64
key: 15.2.0posix-13.0.0-ucrt-r1-x64
- name: Install MinGW x64
if: steps.mingw-x64-cache.outputs.cache-hit != 'true'
uses: bwoodsend/setup-winlibs-action@v1
id: winlibs-64
with:
tag: 15.2.0posix-13.0.0-ucrt-r1
with_clang: false
architecture: 64
destination: ${{ github.workspace }}
add_to_path: false
- name: Checkout SFML
uses: actions/checkout@v4
with:
repository: SFML/SFML
ref: ${{ env.SFML_VERSION }}
path: SFML
- name: Checkout CSFML
uses: actions/checkout@v4
with:
path: CSFML
- name: Build SFML
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 --build SFML-build --config Release --target install
- name: Build CSFML
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 --build CSFML-build --config Release --target install
- name: Add MinGW to PATH
shell: bash
run: echo "${{ github.workspace }}\mingw64\bin" >> $GITHUB_PATH
- name: Generate Import Libs for MinGW
shell: pwsh
run: |
New-Item -ItemType "directory" -PATH "CSFML-install\lib\gcc"
New-Item -ItemType "directory" -PATH "CSFML-install\lib\msvc"
Move-Item -Path "CSFML-install\lib\*.lib" -Destination "CSFML-install\lib\msvc"
Push-Location CSFML-install\lib\gcc
& gendef.exe "..\..\bin\csfml-graphics-3.dll"
& dlltool.exe -d "csfml-graphics-3.def" -D "..\..\bin\csfml-graphics-3.dll" -l "libcsfml-graphics.a"
Remove-Item -Path "csfml-graphics-3.def"
& gendef.exe "..\..\bin\csfml-window-3.dll"
& dlltool.exe -d "csfml-window-3.def" -D "..\..\bin\csfml-window-3.dll" -l "libcsfml-window.a"
Remove-Item -Path "csfml-window-3.def"
& gendef.exe "..\..\bin\csfml-audio-3.dll"
& dlltool.exe -d "csfml-audio-3.def" -D "..\..\bin\csfml-audio-3.dll" -l "libcsfml-audio.a"
Remove-Item -Path "csfml-audio-3.def"
& gendef.exe "..\..\bin\csfml-network-3.dll"
& dlltool.exe -d "csfml-network-3.def" -D "..\..\bin\csfml-network-3.dll" -l "libcsfml-network.a"
Remove-Item -Path "csfml-network-3.def"
& gendef.exe "..\..\bin\csfml-system-3.dll"
& dlltool.exe -d "csfml-system-3.def" -D "..\..\bin\csfml-system-3.dll" -l "libcsfml-system.a"
Remove-Item -Path "csfml-system-3.def"
Pop-Location
New-Item -ItemType "directory" -PATH "install\CSFML"
Move-Item -Path "CSFML-install\*" -Destination "install\CSFML"
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: CSFML-windows-64-bit
path: install/CSFML
windows-arm64:
name: Windows ARM64
runs-on: windows-2025
steps:
- name: Checkout SFML
uses: actions/checkout@v4
with:
repository: SFML/SFML
ref: ${{ env.SFML_VERSION }}
path: SFML
- name: Checkout CSFML
uses: actions/checkout@v4
with:
path: CSFML
- name: Build SFML
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 --build SFML-build --config Release --target install
- name: Build CSFML
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 --build CSFML-build --config Release --target install
- name: Move Files
shell: pwsh
run: |
New-Item -ItemType "directory" -PATH "install\CSFML"
Move-Item -Path "CSFML-install\*" -Destination "install\CSFML"
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: CSFML-windows-arm64
path: install/CSFML
macos-x64:
name: macOS x64
runs-on: macos-13
steps:
- name: Checkout SFML
uses: actions/checkout@v4
with:
repository: SFML/SFML
ref: ${{ env.SFML_VERSION }}
path: SFML
- name: Checkout CSFML
uses: actions/checkout@v4
with:
path: CSFML
- name: Build SFML
run: |
cmake -S SFML -B SFML-build -G "Unix Makefiles" \
-DCMAKE_C_COMPILER="/usr/bin/clang" \
-DCMAKE_CXX_COMPILER="/usr/bin/clang++" \
-DCMAKE_C_FLAGS="-stdlib=libc++" \
-DCMAKE_CXX_FLAGS="-stdlib=libc++" \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/SFML-install \
-DCMAKE_OSX_ARCHITECTURES=x86_64 \
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 \
-DSFML_BUILD_FRAMEWORKS=OFF \
-DCMAKE_VERBOSE_MAKEFILE=ON
cmake --build SFML-build --config Release --target install
- name: Build CSFML
run: |
cmake -S CSFML -B CSFML-build -G "Unix Makefiles" \
-DCMAKE_C_COMPILER="/usr/bin/clang" \
-DCMAKE_CXX_COMPILER="/usr/bin/clang++" \
-DCMAKE_C_FLAGS="-stdlib=libc++" \
-DCMAKE_CXX_FLAGS="-stdlib=libc++" \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/CSFML-install \
-DCMAKE_OSX_ARCHITECTURES=x86_64 \
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 \
-DSFML_ROOT=${{ github.workspace }}/SFML-install \
-DCMAKE_VERBOSE_MAKEFILE=ON
cmake --build CSFML-build --config Release --target install
- name: Create Archive
run: |
mkdir CSFML-macOS-clang-64-bit
cp -R CSFML-install/include CSFML-macOS-clang-64-bit
cp -R CSFML-install/lib CSFML-macOS-clang-64-bit
cp CSFML-install/share/CSFML/* CSFML-macOS-clang-64-bit
tar -zcvf CSFML-macOS-clang-64-bit.tar.gz CSFML-macOS-clang-64-bit
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: CSFML-macOS-clang-64-bit
path: CSFML-macOS-clang-64-bit.tar.gz
macos-arm64:
name: macOS ARM64
runs-on: macos-14
steps:
- name: Checkout SFML
uses: actions/checkout@v4
with:
repository: SFML/SFML
ref: ${{ env.SFML_VERSION }}
path: SFML
- name: Checkout CSFML
uses: actions/checkout@v4
with:
path: CSFML
- name: Build SFML
run: |
cmake -S SFML -B SFML-build -G "Unix Makefiles" \
-DCMAKE_C_COMPILER="/usr/bin/clang" \
-DCMAKE_CXX_COMPILER="/usr/bin/clang++" \
-DCMAKE_C_FLAGS="-stdlib=libc++" \
-DCMAKE_CXX_FLAGS="-stdlib=libc++" \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/SFML-install \
-DCMAKE_OSX_ARCHITECTURES=arm64 \
-DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 \
-DSFML_BUILD_FRAMEWORKS=OFF \
-DCMAKE_VERBOSE_MAKEFILE=ON
cmake --build SFML-build --config Release --target install
- name: Build CSFML
run: |
cmake -S CSFML -B CSFML-build -G "Unix Makefiles" \
-DCMAKE_C_COMPILER="/usr/bin/clang" \
-DCMAKE_CXX_COMPILER="/usr/bin/clang++" \
-DCMAKE_C_FLAGS="-stdlib=libc++" \
-DCMAKE_CXX_FLAGS="-stdlib=libc++" \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/CSFML-install \
-DCMAKE_OSX_ARCHITECTURES=arm64 \
-DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 \
-DSFML_ROOT=${{ github.workspace }}/SFML-install \
-DCMAKE_VERBOSE_MAKEFILE=ON
cmake --build CSFML-build --config Release --target install
- name: Create Archive
run: |
mkdir CSFML-macOS-clang-arm64
cp -R CSFML-install/include CSFML-macOS-clang-arm64
cp -R CSFML-install/lib CSFML-macOS-clang-arm64
cp CSFML-install/share/CSFML/* CSFML-macOS-clang-arm64
tar -zcvf CSFML-macOS-clang-arm64.tar.gz CSFML-macOS-clang-arm64
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: CSFML-macOS-clang-arm64
path: CSFML-macOS-clang-arm64.tar.gz
+2 -2
View File
@@ -38,8 +38,8 @@ add_custom_target(doc ALL
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html
DESTINATION ${INSTALL_MISC_DIR}/doc
COMPONENT doc)
if(DOXYGEN_GENERATE_HTMLHELP)
install(FILES ${DOXYGEN_OUTPUT_DIR}/CSFML.chm
if(DOXYGEN_HHC_PROGRAM)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/CSFML.chm
DESTINATION ${INSTALL_MISC_DIR}/doc
COMPONENT doc)
endif()
-22
View File
@@ -216,28 +216,6 @@ CSFML_GRAPHICS_API bool sfRenderWindow_isSrgb(const sfRenderWindow* renderWindow
////////////////////////////////////////////////////////////
CSFML_GRAPHICS_API void sfRenderWindow_setSize(sfRenderWindow* renderWindow, sfVector2u size);
////////////////////////////////////////////////////////////
/// \brief Set the minimum window rendering region size
///
/// Pass a `NULL` vector to unset the minimum size
///
/// \param renderWindow Render window object
/// \param minimumSize New minimum size, in pixels
///
////////////////////////////////////////////////////////////
CSFML_GRAPHICS_API void sfRenderWindow_setMinimumSize(sfRenderWindow* renderWindow, const sfVector2u* minimumSize);
////////////////////////////////////////////////////////////
/// \brief Set the maximum window rendering region size
///
/// Pass a `NULL` vector to unset the maximum size
///
/// \param renderWindow Render window object
/// \param maximumSize New maximum size, in pixels
///
////////////////////////////////////////////////////////////
CSFML_GRAPHICS_API void sfRenderWindow_setMaximumSize(sfRenderWindow* renderWindow, const sfVector2u* maximumSize);
////////////////////////////////////////////////////////////
/// \brief Change the title of a render window
///
-14
View File
@@ -178,20 +178,6 @@ CSFML_GRAPHICS_API sfTexture* sfTexture_copy(const sfTexture* texture);
////////////////////////////////////////////////////////////
CSFML_GRAPHICS_API void sfTexture_destroy(const sfTexture* texture);
////////////////////////////////////////////////////////////
/// \brief Resize the texture
///
/// If this function fails, the texture is left unchanged.
///
/// \param texture Texture to resize
/// \param size Width and height of the texture
/// \param sRgb `true` to enable sRGB conversion, `false` to disable it
///
/// \return `true` if resizing was successful, `false` if it failed
///
////////////////////////////////////////////////////////////
CSFML_GRAPHICS_API bool sfTexture_resize(sfTexture* texture, sfVector2u size, bool sRgb);
////////////////////////////////////////////////////////////
/// \brief Return the size of the texture
///
+3 -3
View File
@@ -191,7 +191,7 @@ CSFML_GRAPHICS_API sfFloatRect sfView_getViewport(const sfView* view);
CSFML_GRAPHICS_API sfFloatRect sfView_getScissor(const sfView* view);
////////////////////////////////////////////////////////////
/// \brief Move a view relative to its current position
/// \brief Move a view relatively to its current position
///
/// \param view View object
/// \param offset Offset
@@ -200,7 +200,7 @@ CSFML_GRAPHICS_API sfFloatRect sfView_getScissor(const sfView* view);
CSFML_GRAPHICS_API void sfView_move(sfView* view, sfVector2f offset);
////////////////////////////////////////////////////////////
/// \brief Rotate a view relative to its current orientation
/// \brief Rotate a view relatively to its current orientation
///
/// \param view View object
/// \param angle Angle to rotate, in degrees
@@ -209,7 +209,7 @@ CSFML_GRAPHICS_API void sfView_move(sfView* view, sfVector2f offset);
CSFML_GRAPHICS_API void sfView_rotate(sfView* view, float angle);
////////////////////////////////////////////////////////////
/// \brief Resize a view rectangle relative to its current size
/// \brief Resize a view rectangle relatively to its current size
///
/// Resizing the view simulates a zoom, as the zone displayed on
/// screen grows or shrinks.
+1 -1
View File
@@ -132,7 +132,7 @@ CSFML_NETWORK_API void sfIpAddress_toString(sfIpAddress address, char* string);
/// address, and should be used for optimization purposes only
/// (like sending the address through a socket).
/// The integer produced by this function can then be converted
/// back to a sfIpAddress with sfIpAddress_fromInteger.
/// back to a sfIpAddress with sfIpAddress_FromInteger.
///
/// \param address Address object
///
-6
View File
@@ -75,8 +75,6 @@ CSFML_NETWORK_API void sfPacket_append(sfPacket* packet, const void* data, size_
///
/// The next read operation will read data from this position
///
/// \param packet Packet object
///
/// \return The byte offset of the current read position
///
/// \see append
@@ -165,8 +163,6 @@ CSFML_NETWORK_API int16_t sfPacket_readInt16(sfPacket* packet);
CSFML_NETWORK_API uint16_t sfPacket_readUint16(sfPacket* packet);
CSFML_NETWORK_API int32_t sfPacket_readInt32(sfPacket* packet);
CSFML_NETWORK_API uint32_t sfPacket_readUint32(sfPacket* packet);
CSFML_NETWORK_API int64_t sfPacket_readInt64(sfPacket* packet);
CSFML_NETWORK_API uint64_t sfPacket_readUint64(sfPacket* packet);
CSFML_NETWORK_API float sfPacket_readFloat(sfPacket* packet);
CSFML_NETWORK_API double sfPacket_readDouble(sfPacket* packet);
CSFML_NETWORK_API void sfPacket_readString(sfPacket* packet, char* string);
@@ -185,8 +181,6 @@ CSFML_NETWORK_API void sfPacket_writeInt16(sfPacket* packet, int16_t);
CSFML_NETWORK_API void sfPacket_writeUint16(sfPacket* packet, uint16_t);
CSFML_NETWORK_API void sfPacket_writeInt32(sfPacket* packet, int32_t);
CSFML_NETWORK_API void sfPacket_writeUint32(sfPacket* packet, uint32_t);
CSFML_NETWORK_API void sfPacket_writeInt64(sfPacket* packet, int64_t);
CSFML_NETWORK_API void sfPacket_writeUint64(sfPacket* packet, uint64_t);
CSFML_NETWORK_API void sfPacket_writeFloat(sfPacket* packet, float);
CSFML_NETWORK_API void sfPacket_writeDouble(sfPacket* packet, double);
CSFML_NETWORK_API void sfPacket_writeString(sfPacket* packet, const char* string);
-24
View File
@@ -99,10 +99,6 @@ CSFML_NETWORK_API unsigned short sfTcpListener_getLocalPort(const sfTcpListener*
/// If the socket was previously listening to another port,
/// it will be stopped first and bound to the new port.
///
/// When providing `sfTcpListener_anyPort()` as port, the listener
/// will request an available port from the system.
/// The chosen port can be retrieved by calling `sfTcpListener_getLocalPort()`.
///
/// If there is no specific address to listen to, pass sfIpAddress_Any
///
/// \param listener TCP listener object
@@ -114,17 +110,6 @@ CSFML_NETWORK_API unsigned short sfTcpListener_getLocalPort(const sfTcpListener*
////////////////////////////////////////////////////////////
CSFML_NETWORK_API sfSocketStatus sfTcpListener_listen(sfTcpListener* listener, unsigned short port, sfIpAddress address);
////////////////////////////////////////////////////////////
/// \brief Stop listening and close the socket
///
/// This function gracefully stops the listener. If the
/// socket is not listening, this function has no effect.
///
/// \param listener TCP listener object
///
////////////////////////////////////////////////////////////
CSFML_NETWORK_API void sfTcpListener_close(sfTcpListener* listener);
////////////////////////////////////////////////////////////
/// \brief Accept a new connection
///
@@ -142,12 +127,3 @@ CSFML_NETWORK_API void sfTcpListener_close(sfTcpListener* listener);
///
////////////////////////////////////////////////////////////
CSFML_NETWORK_API sfSocketStatus sfTcpListener_accept(sfTcpListener* listener, sfTcpSocket** connected);
////////////////////////////////////////////////////////////
/// \brief Return the special value that tells the system
/// to pick any available port
///
/// \return The value to use for any port
///
////////////////////////////////////////////////////////////
CSFML_NETWORK_API unsigned short sfTcpListener_anyPort(void);
-13
View File
@@ -102,10 +102,6 @@ CSFML_NETWORK_API unsigned short sfUdpSocket_getLocalPort(const sfUdpSocket* soc
/// system to automatically pick an available port, and then
/// call sfUdpSocket_getLocalPort to retrieve the chosen port.
///
/// When providing `sfUdpSocket_anyPort()` as port, the listener
/// will request an available port from the system.
/// The chosen port can be retrieved by calling `sfUdpSocket_getLocalPort()`.
///
/// If there is no specific address to listen to, pass sfIpAddress_Any
///
/// \param socket UDP socket object
@@ -219,12 +215,3 @@ CSFML_NETWORK_API sfSocketStatus
///
////////////////////////////////////////////////////////////
CSFML_NETWORK_API unsigned int sfUdpSocket_maxDatagramSize(void);
////////////////////////////////////////////////////////////
/// \brief Return the special value that tells the system
/// to pick any available port
///
/// \return The value to use for any port
///
////////////////////////////////////////////////////////////
CSFML_NETWORK_API unsigned short sfUdpSocket_anyPort(void);
-22
View File
@@ -280,28 +280,6 @@ CSFML_WINDOW_API sfVector2u sfWindow_getSize(const sfWindow* window);
////////////////////////////////////////////////////////////
CSFML_WINDOW_API void sfWindow_setSize(sfWindow* window, sfVector2u size);
////////////////////////////////////////////////////////////
/// \brief Set the minimum window rendering region size
///
/// Pass a `NULL` vector to unset the minimum size
///
/// \param window Window object
/// \param minimumSize New minimum size, in pixels
///
////////////////////////////////////////////////////////////
CSFML_WINDOW_API void sfWindow_setMinimumSize(sfWindow* window, const sfVector2u* minimumSize);
////////////////////////////////////////////////////////////
/// \brief Set the maximum window rendering region size
///
/// Pass a `NULL` vector to unset the maximum size
///
/// \param window Window object
/// \param maximumSize New maximum size, in pixels
///
////////////////////////////////////////////////////////////
CSFML_WINDOW_API void sfWindow_setMaximumSize(sfWindow* window, const sfVector2u* maximumSize);
////////////////////////////////////////////////////////////
/// \brief Change the title of a window
///
-22
View File
@@ -236,28 +236,6 @@ CSFML_WINDOW_API sfVector2u sfWindowBase_getSize(const sfWindowBase* windowBase)
////////////////////////////////////////////////////////////
CSFML_WINDOW_API void sfWindowBase_setSize(sfWindowBase* windowBase, sfVector2u size);
////////////////////////////////////////////////////////////
/// \brief Set the minimum window rendering region size
///
/// Pass a `NULL` vector to unset the minimum size
///
/// \param windowBase Window object
/// \param minimumSize New minimum size, in pixels
///
////////////////////////////////////////////////////////////
CSFML_WINDOW_API void sfWindowBase_setMinimumSize(sfWindowBase* windowBase, const sfVector2u* minimumSize);
////////////////////////////////////////////////////////////
/// \brief Set the maximum window rendering region size
///
/// Pass a `NULL` vector to unset the maximum size
///
/// \param windowBase Window object
/// \param maximumSize New maximum size, in pixels
///
////////////////////////////////////////////////////////////
CSFML_WINDOW_API void sfWindowBase_setMaximumSize(sfWindowBase* windowBase, const sfVector2u* maximumSize);
////////////////////////////////////////////////////////////
/// \brief Change the title of a window
///
-1
View File
@@ -18,7 +18,6 @@ Development is focused on the next major version in the `master` branch. No more
- Lukas Dürrenberger (eXpl0it3r@sfml-dev.org)
- Chris Thrasher (thrasher@sfml-dev.org)
- Zachariah Brown (contact@zbrown.net)
- And many other members of the SFML community
## Download
-32
View File
@@ -198,38 +198,6 @@ void sfRenderWindow_setSize(sfRenderWindow* renderWindow, sfVector2u size)
}
////////////////////////////////////////////////////////////
void sfRenderWindow_setMinimumSize(sfRenderWindow* renderWindow, const sfVector2u* minimumSize)
{
assert(renderWindow);
if (minimumSize == nullptr)
{
renderWindow->setMinimumSize(std::nullopt);
}
else
{
renderWindow->setMinimumSize(convertVector2(*minimumSize));
}
}
////////////////////////////////////////////////////////////
void sfRenderWindow_setMaximumSize(sfRenderWindow* renderWindow, const sfVector2u* maximumSize)
{
assert(renderWindow);
if (maximumSize == nullptr)
{
renderWindow->setMaximumSize(std::nullopt);
}
else
{
renderWindow->setMaximumSize(convertVector2(*maximumSize));
}
}
////////////////////////////////////////////////////////////
void sfRenderWindow_setTitle(sfRenderWindow* renderWindow, const char* title)
{
-9
View File
@@ -170,15 +170,6 @@ void sfTexture_destroy(const sfTexture* texture)
}
////////////////////////////////////////////////////////////
bool sfTexture_resize(sfTexture* texture, sfVector2u size, bool sRgb)
{
assert(texture);
assert(texture->This);
return texture->This->resize(convertVector2(size), sRgb);
}
////////////////////////////////////////////////////////////
sfVector2u sfTexture_getSize(const sfTexture* texture)
{
+1 -1
View File
@@ -48,7 +48,7 @@ namespace
////////////////////////////////////////////////////////////
const sfIpAddress sfIpAddress_None = {{0}};
const sfIpAddress sfIpAddress_None = sfIpAddress_fromBytes(0, 0, 0, 0);
////////////////////////////////////////////////////////////
-24
View File
@@ -156,20 +156,6 @@ uint32_t sfPacket_readUint32(sfPacket* packet)
*packet >> value;
return value;
}
int64_t sfPacket_readInt64(sfPacket* packet)
{
assert(packet);
int64_t value = 0;
*packet >> value;
return value;
}
uint64_t sfPacket_readUint64(sfPacket* packet)
{
assert(packet);
uint64_t value = 0;
*packet >> value;
return value;
}
float sfPacket_readFloat(sfPacket* packet)
{
assert(packet);
@@ -233,16 +219,6 @@ void sfPacket_writeUint32(sfPacket* packet, uint32_t value)
assert(packet);
*packet << value;
}
void sfPacket_writeInt64(sfPacket* packet, int64_t value)
{
assert(packet);
*packet << value;
}
void sfPacket_writeUint64(sfPacket* packet, uint64_t value)
{
assert(packet);
*packet << value;
}
void sfPacket_writeFloat(sfPacket* packet, float value)
{
assert(packet);
-15
View File
@@ -86,14 +86,6 @@ sfSocketStatus sfTcpListener_listen(sfTcpListener* listener, unsigned short port
}
////////////////////////////////////////////////////////////
void sfTcpListener_close(sfTcpListener* listener)
{
assert(listener);
listener->close();
}
////////////////////////////////////////////////////////////
sfSocketStatus sfTcpListener_accept(sfTcpListener* listener, sfTcpSocket** connected)
{
@@ -110,10 +102,3 @@ sfSocketStatus sfTcpListener_accept(sfTcpListener* listener, sfTcpSocket** conne
return status;
}
////////////////////////////////////////////////////////////
unsigned short sfTcpListener_anyPort()
{
return 0;
}
-7
View File
@@ -203,10 +203,3 @@ unsigned int sfUdpSocket_maxDatagramSize()
{
return sf::UdpSocket::MaxDatagramSize;
}
////////////////////////////////////////////////////////////
unsigned short sfUdpSocket_anyPort()
{
return 0;
}
-32
View File
@@ -159,38 +159,6 @@ void sfWindow_setSize(sfWindow* window, sfVector2u size)
}
////////////////////////////////////////////////////////////
void sfWindow_setMinimumSize(sfWindow* window, const sfVector2u* minimumSize)
{
assert(window);
if (minimumSize == nullptr)
{
window->setMinimumSize(std::nullopt);
}
else
{
window->setMinimumSize(convertVector2(*minimumSize));
}
}
////////////////////////////////////////////////////////////
void sfWindow_setMaximumSize(sfWindow* window, const sfVector2u* maximumSize)
{
assert(window);
if (maximumSize == nullptr)
{
window->setMaximumSize(std::nullopt);
}
else
{
window->setMaximumSize(convertVector2(*maximumSize));
}
}
////////////////////////////////////////////////////////////
void sfWindow_setTitle(sfWindow* window, const char* title)
{
-34
View File
@@ -34,8 +34,6 @@
#include <SFML/Window/VideoMode.hpp>
#include <optional>
////////////////////////////////////////////////////////////
sfWindowBase* sfWindowBase_create(sfVideoMode mode, const char* title, uint32_t style, sfWindowState state)
@@ -143,38 +141,6 @@ void sfWindowBase_setSize(sfWindowBase* windowBase, sfVector2u size)
}
////////////////////////////////////////////////////////////
void sfWindowBase_setMinimumSize(sfWindowBase* windowBase, const sfVector2u* minimumSize)
{
assert(windowBase);
if (minimumSize == nullptr)
{
windowBase->setMinimumSize(std::nullopt);
}
else
{
windowBase->setMinimumSize(convertVector2(*minimumSize));
}
}
////////////////////////////////////////////////////////////
void sfWindowBase_setMaximumSize(sfWindowBase* windowBase, const sfVector2u* maximumSize)
{
assert(windowBase);
if (maximumSize == nullptr)
{
windowBase->setMaximumSize(std::nullopt);
}
else
{
windowBase->setMaximumSize(convertVector2(*maximumSize));
}
}
////////////////////////////////////////////////////////////
void sfWindowBase_setTitle(sfWindowBase* windowBase, const char* title)
{
+86
View File
@@ -0,0 +1,86 @@
#include <CSFML/Audio/Listener.h>
#include <catch2/catch_test_macros.hpp>
TEST_CASE("[Audio] sfListener")
{
SECTION("sfListenerCone")
{
constexpr sfListenerCone cone{};
STATIC_CHECK(cone.innerAngle == 0);
STATIC_CHECK(cone.outerAngle == 0);
STATIC_CHECK(cone.outerGain == 0);
}
SECTION("Set/get global volume")
{
CHECK(sfListener_getGlobalVolume() == 100);
sfListener_setGlobalVolume(42);
CHECK(sfListener_getGlobalVolume() == 42);
}
SECTION("Set/get position")
{
sfVector3f position = sfListener_getPosition();
CHECK(position.x == 0);
CHECK(position.y == 0);
CHECK(position.z == 0);
sfListener_setPosition({3, 4, 5});
position = sfListener_getPosition();
CHECK(position.x == 3);
CHECK(position.y == 4);
CHECK(position.z == 5);
}
SECTION("Set/get direction")
{
sfVector3f direction = sfListener_getDirection();
CHECK(direction.x == 0);
CHECK(direction.y == 0);
CHECK(direction.z == -1);
sfListener_setDirection({6, 7, 8});
direction = sfListener_getDirection();
CHECK(direction.x == 6);
CHECK(direction.y == 7);
CHECK(direction.z == 8);
}
SECTION("Set/get velocity")
{
sfVector3f velocity = sfListener_getVelocity();
CHECK(velocity.x == 0);
CHECK(velocity.y == 0);
CHECK(velocity.z == 0);
sfListener_setVelocity({9, 10, 11});
velocity = sfListener_getVelocity();
CHECK(velocity.x == 9);
CHECK(velocity.y == 10);
CHECK(velocity.z == 11);
}
SECTION("Set/get cone")
{
sfListenerCone cone = sfListener_getCone();
CHECK(cone.innerAngle == 360);
CHECK(cone.outerAngle == 360);
CHECK(cone.outerGain == 1);
sfListener_setCone({15, 30, 0.5f});
cone = sfListener_getCone();
CHECK(cone.innerAngle == 15);
CHECK(cone.outerAngle == 30);
CHECK(cone.outerGain == 0.5f);
}
SECTION("Set/get up vector")
{
sfVector3f upVector = sfListener_getUpVector();
CHECK(upVector.x == 0);
CHECK(upVector.y == 1);
CHECK(upVector.z == 0);
sfListener_setUpVector({12, 13, 14});
upVector = sfListener_getUpVector();
CHECK(upVector.x == 12);
CHECK(upVector.y == 13);
CHECK(upVector.z == 14);
}
}
+2 -2
View File
@@ -48,7 +48,6 @@ add_executable(test-csfml-graphics
Graphics/BlendMode.test.cpp
Graphics/Color.test.cpp
Graphics/CoordinateType.test.cpp
Graphics/Image.test.cpp
Graphics/PrimitiveType.test.cpp
Graphics/Rect.test.cpp
Graphics/RenderStates.test.cpp
@@ -60,7 +59,7 @@ add_executable(test-csfml-graphics
)
target_link_libraries(test-csfml-graphics PRIVATE csfml-graphics Catch2::Catch2WithMain SFML::Graphics)
set_target_warnings(test-csfml-graphics)
catch_discover_tests(test-csfml-graphics WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
catch_discover_tests(test-csfml-graphics)
add_executable(test-csfml-network
Network/Ftp.test.cpp
@@ -73,6 +72,7 @@ set_target_warnings(test-csfml-network)
catch_discover_tests(test-csfml-network)
add_executable(test-csfml-audio
Audio/Listener.test.cpp
Audio/SoundChannel.test.cpp
)
target_link_libraries(test-csfml-audio PRIVATE csfml-audio Catch2::Catch2WithMain SFML::Audio)
-56
View File
@@ -1,56 +0,0 @@
#include <CSFML/Graphics/Image.h>
#include <catch2/catch_test_macros.hpp>
#include <catch2/generators/catch_generators.hpp>
TEST_CASE("[Graphics] sfImage")
{
SECTION("sfImage_create")
{
const sfImage* image = sfImage_create({100, 100});
REQUIRE(image);
const auto size = sfImage_getSize(image);
CHECK(size.x == 100);
CHECK(size.y == 100);
const auto pixel = sfImage_getPixel(image, {50, 50});
CHECK(pixel.r == sfBlack.r);
CHECK(pixel.g == sfBlack.g);
CHECK(pixel.b == sfBlack.b);
CHECK(pixel.a == sfBlack.a);
CHECK(sfImage_getPixelsPtr(image));
sfImage_destroy(image);
}
SECTION("sfImage_createFromColor")
{
const sfImage* image = sfImage_createFromColor({100, 100}, sfMagenta);
REQUIRE(image);
const auto size = sfImage_getSize(image);
CHECK(size.x == 100);
CHECK(size.y == 100);
const auto pixel = sfImage_getPixel(image, {50, 50});
CHECK(pixel.r == sfMagenta.r);
CHECK(pixel.g == sfMagenta.g);
CHECK(pixel.b == sfMagenta.b);
CHECK(pixel.a == sfMagenta.a);
CHECK(sfImage_getPixelsPtr(image));
sfImage_destroy(image);
}
SECTION("sfImage_createFromFile")
{
const auto filename = std::string("Graphics/sfml-logo-big.") + GENERATE("bmp", "gif", "jpg", "png", "psd");
INFO("Filename: " << filename);
const sfImage* image = sfImage_createFromFile(filename.c_str());
REQUIRE(image);
const auto size = sfImage_getSize(image);
CHECK(size.x == 1001);
CHECK(size.y == 304);
const auto pixel = sfImage_getPixel(image, {0, 0});
CHECK(pixel.r == sfWhite.r);
CHECK(pixel.g == sfWhite.g);
CHECK(pixel.b == sfWhite.b);
CHECK(sfImage_getPixelsPtr(image));
sfImage_destroy(image);
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 892 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.
+1 -9
View File
@@ -2,8 +2,6 @@
#include <catch2/catch_test_macros.hpp>
#include <cstring>
TEST_CASE("[Network] sfIpAddress")
{
SECTION("Constants")
@@ -12,18 +10,12 @@ TEST_CASE("[Network] sfIpAddress")
CHECK(sfIpAddress_toInteger(sfIpAddress_Any) == 0);
CHECK(sfIpAddress_toInteger(sfIpAddress_LocalHost) == 0x7F000001);
CHECK(sfIpAddress_toInteger(sfIpAddress_Broadcast) == 0xFFFFFFFF);
CHECK(std::strcmp(sfIpAddress_None.address, "") == 0);
CHECK(std::strcmp(sfIpAddress_Any.address, "0.0.0.0") == 0);
CHECK(std::strcmp(sfIpAddress_LocalHost.address, "127.0.0.1") == 0);
CHECK(std::strcmp(sfIpAddress_Broadcast.address, "255.255.255.255") == 0);
}
SECTION("sfIpAddress_fromString")
{
CHECK(sfIpAddress_toInteger(sfIpAddress_fromString("")) == 0);
CHECK(sfIpAddress_toInteger(sfIpAddress_fromString("256.256.256.256")) == 0);
CHECK(sfIpAddress_toInteger(sfIpAddress_fromString("localhost")) == 0x7F000001);
CHECK(sfIpAddress_toInteger(sfIpAddress_fromString("invalid address")) == 0);
CHECK(sfIpAddress_toInteger(sfIpAddress_fromString("192.168.0.1")) == 0xC0A80001);
CHECK(sfIpAddress_toInteger(sfIpAddress_fromString("8.8.8.8")) == 0x08080808);
}
+2 -2
View File
@@ -1,7 +1,7 @@
#!/bin/sh
VERSION="3.0.0"
VERSION_C="3.0.0"
VERSION="2.6.1"
VERSION_C="2.6.0"
# BUILD_CSFML=FALSE
BUILD_CSFML=TRUE
BUILD_SFML=FALSE
+1 -3
View File
@@ -4,7 +4,7 @@
<TargetFramework>netstandard2.0</TargetFramework>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Version>3.0.0-rc.2</Version>
<Version>3.0.0</Version>
<Authors>Laurent Gomila</Authors>
<PackageTags>sfml csfml</PackageTags>
<Copyright>Copyright © Laurent Gomila</Copyright>
@@ -13,7 +13,6 @@
<PackageProjectUrl>https://www.sfml-dev.org/</PackageProjectUrl>
<PackageIconUrl>https://www.sfml-dev.org/images/sfml-icon.png</PackageIconUrl>
<PackageIcon>sfml-icon.png</PackageIcon>
<PackageReadmeFile>readme.md</PackageReadmeFile>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<IncludeBuildOutput>false</IncludeBuildOutput>
@@ -32,7 +31,6 @@
<None Pack="True" Include="runtimes/**" PackagePath="runtimes" />
<None Pack="True" Include="build/**" PackagePath="build" />
<None Pack="True" Include="sfml-icon.png" PackagePath="/" />
<None Pack="True" Include="readme.md" PackagePath="/" />
</ItemGroup>
</Project>
-33
View File
@@ -1,33 +0,0 @@
# CSFML - Simple and Fast Multimedia Library for C
SFML is a simple, fast, cross-platform and object-oriented multimedia API.
It provides access to windowing, graphics, audio and network.
It is originally written in C++, and this project is its official binding for the C language.
This NuGet package is designed to provide the required native CSFML libraries for SFML.Net.
## Authors
- Laurent Gomila (laurent@sfml-dev.org)
- Lukas Dürrenberger (eXpl0it3r@sfml-dev.org)
- Chris Thrasher (thrasher@sfml-dev.org)
- Zachariah Brown (contact@zbrown.net)
- And many other members of the SFML community
## Learn
There is no tutorial for CSFML, but since it's a binding you can use the C++ resources:
* The [official tutorials](https://www.sfml-dev.org/tutorials/)
* The [online API documentation](https://www.sfml-dev.org/documentation/)
* The [community wiki](https://github.com/SFML/SFML/wiki/)
* The [community forum](https://en.sfml-dev.org/forums/) (or [French](https://fr.sfml-dev.org/forums/))
Of course, you can also find the CSFML API documentation in the SDK.
## Contribute
SFML and CSFML are open-source projects, and they need your help to go on growing and improving.
Don't hesitate to post suggestions or bug reports on [the forum](https://en.sfml-dev.org/forums/), or post new bugs/features requests on the [issue tracker](https://github.com/SFML/CSFML/issues/).
You can even fork the project on GitHub, maintain your own version and send us pull requests periodically to merge your work.
+1 -2
View File
@@ -42,7 +42,7 @@ echo "Please note that all SFML dependencies must be installed and available to
RID="$1"
SFMLBranch="3.0.1" # The branch or tag of the SFML repository to be cloned
SFMLBranch="master" # The branch or tag of the SFML repository to be cloned
CSFMLDir="$(realpath ../../)" # The directory of the source code of CSFML
OutDir="./CSFML/runtimes/$RID/native" # The base directory of all CSFML modules, used to copy the final libraries
@@ -94,7 +94,6 @@ cmake -E env LDFLAGS="-z origin" \
"-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=$SFMLLibDir" \
'-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON' \
'-DCMAKE_INSTALL_RPATH=$ORIGIN' \
'-DSFML_USE_SYSTEM_DEPS=OFF' \
'-DSFML_BUILD_NETWORK=OFF' \
"$SFMLDir"
+33 -4
View File
@@ -46,7 +46,7 @@ echo "Please note that all SFML dependencies must be installed and available to
RID="$1"
SFMLBranch="3.0.1" # The branch or tag of the SFML repository to be cloned
SFMLBranch="master" # The branch or tag of the SFML repository to be cloned
CSFMLDir="$(grealpath "$(git rev-parse --show-toplevel)")" # The directory of the source code of CSFML
OutDir="./CSFML/runtimes/$RID/native" # The base directory of all CSFML modules, used to copy the final libraries
@@ -146,12 +146,39 @@ cmake -E env \
"$CSFMLDir"
cmake --build . --config Release --target install
# ======================================== #
# STEP 5: Copy result to the NuGet folders #
# ======================================== #
# ============================ #
# STEP 5: Fix RPATH references #
# ============================ #
SFMLMajorMinor="3.0"
SFMLMajorMinorPatch="$SFMLMajorMinor.0"
# SFML's framework dependencies will always reference @rpath/../Frameworks/<depedency>
# Which is not where we place the frameworks and where SFML should look for them
# This this fixes the dependency with install_name_tool
fixrpath()
{
MODULE="$1"
OLD="$2"
NEW="$3"
install_name_tool -change $OLD $NEW "$SFMLLibDir/libsfml-$MODULE.dylib"
install_name_tool -change $OLD $NEW "$SFMLLibDir/libsfml-$MODULE.$SFMLMajorMinor.dylib"
install_name_tool -change $OLD $NEW "$SFMLLibDir/libsfml-$MODULE.$SFMLMajorMinorPatch.dylib"
}
fixrpath audio "@rpath/../Frameworks/vorbisenc.framework/Versions/A/vorbisenc" "@rpath/vorbisenc.framework/Versions/A/vorbisen"
fixrpath audio "@rpath/../Frameworks/vorbisfile.framework/Versions/A/vorbisfile" "@rpath/vorbisfile.framework/Versions/A/vorbisfile"
fixrpath audio "@rpath/../Frameworks/vorbis.framework/Versions/A/vorbis" "@rpath/vorbis.framework/Versions/A/vorbis"
fixrpath audio "@rpath/../Frameworks/ogg.framework/Versions/A/ogg" "@rpath/ogg.framework/Versions/A/ogg"
fixrpath audio "@rpath/../Frameworks/FLAC.framework/Versions/A/FLAC" "@rpath/FLAC.framework/Versions/A/FLAC"
fixrpath graphics "@rpath/../Frameworks/freetype.framework/Versions/A/freetype" "@rpath/freetype.framework/Versions/A/freetype"
# ======================================== #
# STEP 6: Copy result to the NuGet folders #
# ======================================== #
CSFMLMajorMinor="3.0"
CSFMLMajorMinorPatch="$CSFMLMajorMinor.0"
@@ -181,6 +208,8 @@ copymodule graphics
copymodule system
copymodule window
cp -R "$SFMLLibDir/lib/"*.framework "$OutDir"
popd # Pop CSFML
popd # Pop $RID
popd # Pop Build
+13 -8
View File
@@ -18,7 +18,6 @@ if (-not $RID) {
$Generator = 'Visual Studio 17 2022'
# See also: https://learn.microsoft.com/en-us/dotnet/core/rid-catalog#known-rids
switch ($RID) {
'win-x86' {
$Architecture = 'Win32'
@@ -26,9 +25,6 @@ switch ($RID) {
'win-x64' {
$Architecture = 'x64'
}
'win-arm64' {
$Architecture = 'ARM64'
}
Default {
Write-Error "Unknown RID '$RID'"
exit
@@ -39,7 +35,7 @@ Write-Output "Building $RID"
Write-Output "Using $Generator as the cmake generator"
Write-Output "Using architecture $Architecture"
$SFMLBranch = "3.0.1" # The branch or tag of the SFML repository to be cloned
$SFMLBranch = "master" # The branch or tag of the SFML repository to be cloned
$CSFMLDir = (Get-Item (git rev-parse --show-toplevel)).FullName # The directory of the source code of CSFML
$OutDir = "./CSFML/runtimes/$RID/native" # The directory of all CSFML modules, used to copy the final dlls
@@ -87,9 +83,17 @@ Push-Location "SFML"
$SFMLDir = (Get-Item .).FullName
IF ($RID -ne 'win-x86' -and $RID -ne 'win-x64' -and $RID -ne 'win-arm64') {
Write-Error "Unknown RID '$RID'"
exit
switch ($RID) {
'win-x86' {
$SFMLExtLibs = (Get-Item ./extlibs/libs-msvc-universal/x86).FullName
}
'win-x64' {
$SFMLExtLibs = (Get-Item ./extlibs/libs-msvc-universal/x64).FullName
}
Default {
Write-Error "Unknown RID '$RID'"
exit
}
}
Pop-Location # Pop SFML
@@ -138,6 +142,7 @@ $CSFMLLibDir = (Get-Item lib).FullName; # The directory where the final CSFML dl
cmake `
"-DSFML_ROOT=$SFMLInstallDir" `
'-DCSFML_LINK_SFML_STATICALLY=OFF' `
"-DCMAKE_LIBRARY_PATH=$SFMLExtLibs" `
`
"-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=$CSFMLLibDir" `
"-DCMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE=$CSFMLLibDir" `