Skip to content

Support for compiling with ninja on Windows #1556

Support for compiling with ninja on Windows

Support for compiling with ninja on Windows #1556

Workflow file for this run

name: Build
on:
push:
branches: [ master ]
paths-ignore:
- 'Docs/**'
- '**.md'
pull_request:
branches: [ master ]
paths-ignore:
- 'Docs/**'
- '**.md'
jobs:
linux-clang:
runs-on: ubuntu-latest
name: Linux Clang
strategy:
fail-fast: false
matrix:
build_type: [Debug, Release, Distribution, ReleaseASAN, ReleaseUBSAN]
clang_version: [clang++-13, clang++-14]
double_precision: [No, Yes]
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Configure CMake
run: cmake -B ${{github.workspace}}/Build/Linux_${{matrix.build_type}}_${{matrix.clang_version}} -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DCMAKE_CXX_COMPILER=${{matrix.clang_version}} -DDOUBLE_PRECISION=${{matrix.double_precision}} Build
- name: Build
run: cmake --build ${{github.workspace}}/Build/Linux_${{matrix.build_type}}_${{matrix.clang_version}} -j 2
- name: Test
working-directory: ${{github.workspace}}/Build/Linux_${{matrix.build_type}}_${{matrix.clang_version}}
run: ctest --output-on-failure
linux-clang-so:
runs-on: ubuntu-latest
name: Linux Clang Shared Library
strategy:
fail-fast: false
matrix:
build_type: [Debug, Release, Distribution]
clang_version: [clang++-14]
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Configure CMake
run: cmake -B ${{github.workspace}}/Build/Linux_${{matrix.build_type}}_${{matrix.clang_version}} -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DCMAKE_CXX_COMPILER=${{matrix.clang_version}} -DBUILD_SHARED_LIBS=Yes Build
- name: Build
run: cmake --build ${{github.workspace}}/Build/Linux_${{matrix.build_type}}_${{matrix.clang_version}} -j 2
- name: Test
working-directory: ${{github.workspace}}/Build/Linux_${{matrix.build_type}}_${{matrix.clang_version}}
run: ctest --output-on-failure
linux-gcc:
runs-on: ubuntu-latest
name: Linux GCC
strategy:
fail-fast: false
matrix:
build_type: [Debug, Release, Distribution]
clang_version: [g++]
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Configure CMake
run: cmake -B ${{github.workspace}}/Build/Linux_${{matrix.build_type}}_${{matrix.clang_version}} -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DCMAKE_CXX_COMPILER=${{matrix.clang_version}} Build
- name: Build
run: cmake --build ${{github.workspace}}/Build/Linux_${{matrix.build_type}}_${{matrix.clang_version}} -j 2
- name: Test
working-directory: ${{github.workspace}}/Build/Linux_${{matrix.build_type}}_${{matrix.clang_version}}
run: ctest --output-on-failure
linux-gcc-so:
runs-on: ubuntu-latest
name: Linux GCC Shared Library
strategy:
fail-fast: false
matrix:
build_type: [Debug, Release, Distribution]
clang_version: [g++]
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Configure CMake
run: cmake -B ${{github.workspace}}/Build/Linux_${{matrix.build_type}}_${{matrix.clang_version}} -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DCMAKE_CXX_COMPILER=${{matrix.clang_version}} -DBUILD_SHARED_LIBS=Yes Build
- name: Build
run: cmake --build ${{github.workspace}}/Build/Linux_${{matrix.build_type}}_${{matrix.clang_version}} -j 2
- name: Test
working-directory: ${{github.workspace}}/Build/Linux_${{matrix.build_type}}_${{matrix.clang_version}}
run: ctest --output-on-failure
msys2_mingw_gcc:
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
name: MSYS2 MinGW GCC
strategy:
fail-fast: false
matrix:
build_type: [Debug, Release]
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Setup MSYS2
uses: msys2/setup-msys2@v2
with:
msystem: mingw64
install: mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake
update: true
- name: Configure CMake
run: cmake -B Build/MSYS2_MinGW_GCC -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=${{matrix.build_type}} Build
- name: Build
run: cmake --build Build/MSYS2_MinGW_GCC -j 2
- name: Test
working-directory: Build/MSYS2_MinGW_GCC
run: ctest --output-on-failure
msvc_cl:
runs-on: windows-latest
name: Visual Studio CL
strategy:
fail-fast: false
matrix:
build_type: [Debug, Release, Distribution]
double_precision: [No, Yes]
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.3
- name: Configure CMake
run: cmake -B ${{github.workspace}}/Build/VS2022_CL -G "Visual Studio 17 2022" -A x64 Build -DDOUBLE_PRECISION=${{matrix.double_precision}}
- name: Build
run: msbuild Build\VS2022_CL\JoltPhysics.sln /property:Configuration=${{matrix.build_type}} -m
- name: Test
working-directory: ${{github.workspace}}/Build/VS2022_CL/${{matrix.build_type}}
run: ./UnitTests.exe
msvc_cl_dll:
runs-on: windows-latest
name: Visual Studio CL Shared Library
strategy:
fail-fast: false
matrix:
build_type: [Debug, Release, Distribution]
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.3
- name: Configure CMake
run: cmake -B ${{github.workspace}}/Build/VS2022_CL -G "Visual Studio 17 2022" -A x64 Build -DBUILD_SHARED_LIBS=Yes
- name: Build
run: msbuild Build\VS2022_CL\JoltPhysics.sln /property:Configuration=${{matrix.build_type}} -m
- name: Test
working-directory: ${{github.workspace}}/Build/VS2022_CL/${{matrix.build_type}}
run: ./UnitTests.exe
msvc_cl_32_bit:
runs-on: windows-latest
name: Visual Studio CL 32-bit
strategy:
fail-fast: false
matrix:
build_type: [Debug, Release]
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.3
- name: Configure CMake
run: cmake -B ${{github.workspace}}/Build/VS2022_CL_32_BIT -G "Visual Studio 17 2022" -A Win32 -DUSE_SSE4_1=OFF -DUSE_SSE4_2=OFF -DUSE_AVX=OFF -DUSE_AVX2=OFF -DUSE_AVX512=OFF -DUSE_LZCNT=OFF -DUSE_TZCNT=OFF -DUSE_F16C=OFF -DUSE_FMADD=OFF Build
- name: Build
run: msbuild Build\VS2022_CL_32_BIT\JoltPhysics.sln /property:Configuration=${{matrix.build_type}} -m
- name: Test
working-directory: ${{github.workspace}}/Build/VS2022_CL_32_BIT/${{matrix.build_type}}
run: ./UnitTests.exe
msvc_cl_arm:
runs-on: windows-latest
name: Visual Studio CL ARM
strategy:
fail-fast: false
matrix:
build_type: [Debug, Release]
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.3
- name: Configure CMake
run: cmake -B ${{github.workspace}}/Build/VS2022_CL_ARM -G "Visual Studio 17 2022" -A ARM64 Build
- name: Build
run: msbuild Build\VS2022_CL_ARM\JoltPhysics.sln /property:Configuration=${{matrix.build_type}} -m
msvc_cl_arm_32_bit:
runs-on: windows-latest
name: Visual Studio CL ARM 32-bit
strategy:
fail-fast: false
matrix:
build_type: [Debug, Release]
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.3
- name: Configure CMake
run: cmake -B ${{github.workspace}}/Build/VS2022_CL_ARM_32_BIT -G "Visual Studio 17 2022" -A ARM Build
- name: Build
run: msbuild Build\VS2022_CL_ARM_32_BIT\JoltPhysics.sln /property:Configuration=${{matrix.build_type}} -m
msvc_clang:
runs-on: windows-latest
name: Visual Studio Clang
strategy:
fail-fast: false
matrix:
build_type: [Debug, Release, Distribution]
double_precision: [No, Yes]
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.3
- name: Configure CMake
run: cmake -B ${{github.workspace}}/Build/VS2022_Clang -G "Visual Studio 17 2022" -A x64 -T ClangCL Build -DDOUBLE_PRECISION=${{matrix.double_precision}}
- name: Build
run: msbuild Build\VS2022_Clang\JoltPhysics.sln /property:Configuration=${{matrix.build_type}} -m
- name: Test
working-directory: ${{github.workspace}}/Build/VS2022_Clang/${{matrix.build_type}}
run: ./UnitTests.exe
macos:
runs-on: macos-latest
name: macOS
strategy:
fail-fast: false
matrix:
build_type: [Debug, Release, Distribution]
clang_version: [clang++]
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Configure CMake
# github macos-latest runs on a 2013 Ivy Bridge CPU so doesn't have AVX2, LZCNT, TZCNT or FMADD
run: cmake -B ${{github.workspace}}/Build/MacOS_${{matrix.build_type}}_${{matrix.clang_version}} -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DCMAKE_CXX_COMPILER=${{matrix.clang_version}} -DUSE_AVX2=OFF -DUSE_AVX512=OFF -DUSE_LZCNT=OFF -DUSE_TZCNT=OFF -DUSE_FMADD=OFF Build
- name: Build
run: cmake --build ${{github.workspace}}/Build/MacOS_${{matrix.build_type}}_${{matrix.clang_version}} -j 2
- name: Test
working-directory: ${{github.workspace}}/Build/MacOS_${{matrix.build_type}}_${{matrix.clang_version}}
run: ctest --output-on-failure
android:
runs-on: ubuntu-latest
name: Android
strategy:
fail-fast: false
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
- name: Gradle Build
working-directory: ${{github.workspace}}/Build/Android
run: ./gradlew build --no-daemon
ios:
runs-on: macos-latest
name: iOS
strategy:
fail-fast: false
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Configure CMake
run: cmake -B ${{github.workspace}}/Build/XCode_iOS -DTARGET_HELLO_WORLD=OFF -DTARGET_PERFORMANCE_TEST=OFF -DCMAKE_SYSTEM_NAME=iOS -GXcode Build
- name: Build
run: cmake --build ${{github.workspace}}/Build/XCode_iOS -- -sdk iphonesimulator -arch x86_64