mirror of
https://github.com/recastnavigation/recastnavigation.git
synced 2026-08-16 08:09:53 +00:00
Fast math is not required, but it speeds up some calculations at the expense of accuracy. There are some functions like dtMathIsfinite that use floating point functions that become undefined behavior when compiled with fast-math, so we need to conditionally short-circuit these functions when compiled with that flag. -Wnan-infinity-disabled is complaining about the isfinite call in dtMathIsfinite. This also sets the linux runner explicitly to Ubuntu 24.04, since ubuntu-latest defaults to 22.04 for some reason. This also updates gcc and clang to the latest versions in apt and logs their version to the run output. We need at least clang18 to disable the -Wnan-infinity-disabled warning for Catch. Finally, this also removes some unused code that was throwing a warning (and thus an error) on newer compiler versions.
224 lines
6.5 KiB
YAML
224 lines
6.5 KiB
YAML
name: Build
|
|
|
|
on:
|
|
push:
|
|
branches: [ "**" ]
|
|
pull_request:
|
|
branches: [ "**" ]
|
|
|
|
jobs:
|
|
macOS-premake:
|
|
strategy:
|
|
matrix:
|
|
conf:
|
|
- Debug
|
|
- Release
|
|
|
|
runs-on: macos-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Download & install SDL
|
|
run: |
|
|
curl -L -o SDL2.dmg https://github.com/libsdl-org/SDL/releases/download/release-2.24.2/SDL2-2.24.2.dmg
|
|
hdiutil attach SDL2.dmg
|
|
cp -r /Volumes/SDL2/SDL2.framework RecastDemo/Bin
|
|
hdiutil detach /Volumes/SDL2
|
|
rm SDL2.dmg
|
|
|
|
- name: Download & install premake
|
|
working-directory: RecastDemo
|
|
run: |
|
|
curl -L -o premake.tar.gz https://github.com/premake/premake-core/releases/download/v5.0.0-beta2/premake-5.0.0-beta2-macosx.tar.gz
|
|
tar -xzf premake.tar.gz
|
|
rm premake.tar.gz
|
|
|
|
- name: Run premake
|
|
working-directory: RecastDemo
|
|
run: ./premake5 xcode4
|
|
|
|
- name: Build With Xcode
|
|
working-directory: RecastDemo/Build/xcode4/
|
|
run: xcodebuild -scheme RecastDemo -configuration ${{matrix.conf}} -project RecastDemo.xcodeproj build
|
|
|
|
- name: Build Unit Tests With Xcode
|
|
working-directory: RecastDemo/Build/xcode4/
|
|
run: xcodebuild -scheme Tests -configuration ${{matrix.conf}} -project Tests.xcodeproj build
|
|
|
|
macos-cmake:
|
|
strategy:
|
|
matrix:
|
|
conf:
|
|
- Debug
|
|
- Release
|
|
|
|
runs-on: macos-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Download & install SDL
|
|
run: |
|
|
curl -L -o SDL2.dmg https://github.com/libsdl-org/SDL/releases/download/release-2.24.2/SDL2-2.24.2.dmg
|
|
hdiutil attach SDL2.dmg
|
|
cp -r /Volumes/SDL2/SDL2.framework ${{github.workspace}}/RecastDemo/Bin/
|
|
hdiutil detach /Volumes/SDL2
|
|
rm SDL2.dmg
|
|
|
|
- name: Configure CMake
|
|
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
|
|
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
|
|
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{matrix.conf}} -DSDL2_LIBRARY=${{github.workspace}}/RecastDemo/Bin/SDL2.framework
|
|
|
|
- name: Build
|
|
run: cmake --build ${{github.workspace}}/build --config ${{matrix.conf}}
|
|
|
|
linux-premake:
|
|
strategy:
|
|
matrix:
|
|
conf:
|
|
- debug
|
|
- release
|
|
compiler:
|
|
- clang
|
|
- gcc
|
|
|
|
runs-on: ubuntu-24.04
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Install opengl and SDL
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y libgl1-mesa-dev libglu1-mesa-dev libsdl2-dev clang gcc
|
|
clang --version
|
|
gcc --version
|
|
|
|
- name: Download & Install premake
|
|
working-directory: RecastDemo
|
|
run: |
|
|
curl -L -o premake.tar.gz https://github.com/premake/premake-core/releases/download/v5.0.0-beta2/premake-5.0.0-beta2-linux.tar.gz
|
|
tar -xzf premake.tar.gz
|
|
rm premake.tar.gz
|
|
|
|
- name: Run premake
|
|
working-directory: RecastDemo
|
|
run: ./premake5 --cc=${{matrix.compiler}} gmake2
|
|
|
|
- name: Build
|
|
working-directory: RecastDemo/Build/gmake2
|
|
run: make config=${{matrix.conf}} verbose=true
|
|
|
|
linux-cmake:
|
|
strategy:
|
|
matrix:
|
|
conf:
|
|
- Debug
|
|
- Release
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Install opengl and SDL
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y libgl1-mesa-dev libglu1-mesa-dev libsdl2-dev
|
|
|
|
- name: Configure CMake
|
|
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{matrix.conf}}
|
|
|
|
- name: Build
|
|
run: cmake --build ${{github.workspace}}/build --config ${{matrix.conf}}
|
|
|
|
windows-premake:
|
|
strategy:
|
|
matrix:
|
|
conf:
|
|
- Debug
|
|
- Release
|
|
vs-version:
|
|
- vs2019
|
|
- vs2022
|
|
include:
|
|
- vs-version: vs2019
|
|
version-range: '16.0'
|
|
runner: windows-2019
|
|
- vs-version: vs2022
|
|
version-range: '17.0'
|
|
runner: windows-2022
|
|
|
|
runs-on: ${{matrix.runner}}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Add msbuild to PATH
|
|
uses: microsoft/setup-msbuild@v1.1
|
|
with:
|
|
vs-version: ${{matrix.version-range}}
|
|
|
|
- name: Download and Install SDL
|
|
working-directory: RecastDemo/Contrib
|
|
shell: pwsh
|
|
run: |
|
|
(new-object System.Net.WebClient).DownloadFile("https://github.com/libsdl-org/SDL/releases/download/release-2.24.2/SDL2-devel-2.24.2-VC.zip","${{github.workspace}}/RecastDemo/Contrib/SDL.zip")
|
|
tar -xf SDL.zip
|
|
ren SDL2-2.24.2 SDL
|
|
del SDL.zip
|
|
|
|
- name: Download and Install Premake
|
|
working-directory: RecastDemo
|
|
shell: pwsh
|
|
run: |
|
|
(new-object System.Net.WebClient).DownloadFile("https://github.com/premake/premake-core/releases/download/v5.0.0-beta2/premake-5.0.0-beta2-windows.zip","${{github.workspace}}/RecastDemo/premake.zip")
|
|
tar -xf premake.zip
|
|
del premake.zip
|
|
|
|
- name: Run Premake
|
|
working-directory: RecastDemo
|
|
run: ./premake5.exe ${{matrix.vs-version}}
|
|
|
|
- name: Build
|
|
working-directory: RecastDemo/Build/${{matrix.vs-version}}
|
|
run: msbuild RecastDemo.vcxproj -property:Configuration=${{matrix.conf}}
|
|
|
|
windows-cmake:
|
|
strategy:
|
|
matrix:
|
|
conf:
|
|
- Debug
|
|
- Release
|
|
vs-version:
|
|
- vs2019
|
|
- vs2022
|
|
include:
|
|
- vs-version: vs2019
|
|
cmake-generator: Visual Studio 16 2019
|
|
runner: windows-2019
|
|
- vs-version: vs2022
|
|
cmake-generator: Visual Studio 17 2022
|
|
runner: windows-2022
|
|
|
|
runs-on: ${{matrix.runner}}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Download and Install SDL
|
|
working-directory: RecastDemo/Contrib
|
|
shell: pwsh
|
|
run: |
|
|
(new-object System.Net.WebClient).DownloadFile("https://github.com/libsdl-org/SDL/releases/download/release-2.24.2/SDL2-devel-2.24.2-VC.zip","${{github.workspace}}/RecastDemo/Contrib/SDL.zip")
|
|
tar -xf SDL.zip
|
|
ren SDL2-2.24.2 SDL
|
|
del SDL.zip
|
|
|
|
- name: Configure CMake
|
|
run: cmake -G "${{matrix.cmake-generator}}" -B ${{github.workspace}}/build -D CMAKE_BUILD_TYPE=${{matrix.conf}} -D CMAKE_INSTALL_PREFIX=${{github.workspace}}/build
|
|
|
|
- name: Build with CMake
|
|
run: cmake --build ${{github.workspace}}/build --config ${{matrix.conf}}
|