Ajout de Jolt Physics + 1ere version des factory entitecomposants - camera, transform, rigidbody, collider, renderer
This commit is contained in:
435
lib/All/JoltPhysics/.github/workflows/build.yml
vendored
Normal file
435
lib/All/JoltPhysics/.github/workflows/build.yml
vendored
Normal file
@@ -0,0 +1,435 @@
|
||||
name: Build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
paths-ignore:
|
||||
- 'Docs/**'
|
||||
- '**.md'
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
paths-ignore:
|
||||
- 'Docs/**'
|
||||
- '**.md'
|
||||
|
||||
env:
|
||||
EMSCRIPTEN_VERSION: 3.1.64
|
||||
UBUNTU_CLANG_VERSION: clang++-18
|
||||
UBUNTU_GCC_VERSION: g++-14
|
||||
|
||||
jobs:
|
||||
linux-clang:
|
||||
runs-on: ubuntu-latest
|
||||
name: Linux Clang
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build_type: [Debug, Release, Distribution]
|
||||
double_precision: [No, Yes]
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v6
|
||||
- name: Install Vulkan
|
||||
run: ${{github.workspace}}/Build/ubuntu24_install_vulkan_sdk.sh
|
||||
- name: Configure CMake
|
||||
working-directory: ${{github.workspace}}/Build
|
||||
run: ./cmake_linux_clang_gcc.sh ${{matrix.build_type}} ${{env.UBUNTU_CLANG_VERSION}} -DDOUBLE_PRECISION=${{matrix.double_precision}}
|
||||
- name: Build
|
||||
run: cmake --build ${{github.workspace}}/Build/Linux_${{matrix.build_type}} -j $(nproc)
|
||||
- name: Test
|
||||
working-directory: ${{github.workspace}}/Build/Linux_${{matrix.build_type}}
|
||||
run: ctest --output-on-failure --verbose
|
||||
|
||||
linux_clang_tsan:
|
||||
runs-on: ubuntu-24.04
|
||||
name: Linux Clang Sanitizers
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build_type: [ReleaseASAN, ReleaseUBSAN, ReleaseTSAN]
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v6
|
||||
- name: Configure CMake
|
||||
working-directory: ${{github.workspace}}/Build
|
||||
run: ./cmake_linux_clang_gcc.sh ${{matrix.build_type}} ${{env.UBUNTU_CLANG_VERSION}} -DTARGET_VIEWER=OFF -DTARGET_SAMPLES=OFF -DTARGET_HELLO_WORLD=OFF -DTARGET_UNIT_TESTS=ON -DTARGET_PERFORMANCE_TEST=ON
|
||||
- name: Build
|
||||
run: cmake --build ${{github.workspace}}/Build/Linux_${{matrix.build_type}} -j $(nproc)
|
||||
- name: Unit Tests
|
||||
working-directory: ${{github.workspace}}/Build/Linux_${{matrix.build_type}}
|
||||
run: ctest --output-on-failure --verbose
|
||||
- name: Test ConvexVsMesh
|
||||
working-directory: ${{github.workspace}}/Build/Linux_${{matrix.build_type}}
|
||||
run: ./PerformanceTest -q=LinearCast -t=max -s=ConvexVsMesh
|
||||
- name: Test Ragdoll
|
||||
working-directory: ${{github.workspace}}/Build/Linux_${{matrix.build_type}}
|
||||
run: ./PerformanceTest -q=LinearCast -t=max -s=Ragdoll
|
||||
|
||||
linux-clang-so:
|
||||
runs-on: ubuntu-24.04
|
||||
name: Linux Clang Shared Library
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build_type: [Debug, Release, Distribution]
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v6
|
||||
- name: Configure CMake
|
||||
working-directory: ${{github.workspace}}/Build
|
||||
run: ./cmake_linux_clang_gcc.sh ${{matrix.build_type}} ${{env.UBUNTU_CLANG_VERSION}} -DBUILD_SHARED_LIBS=YES
|
||||
- name: Build
|
||||
run: cmake --build ${{github.workspace}}/Build/Linux_${{matrix.build_type}} -j $(nproc)
|
||||
- name: Test
|
||||
working-directory: ${{github.workspace}}/Build/Linux_${{matrix.build_type}}
|
||||
run: ctest --output-on-failure --verbose
|
||||
|
||||
linux-clang-32-bit:
|
||||
runs-on: ubuntu-24.04
|
||||
name: Linux Clang 32-bit
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build_type: [Debug, Release, Distribution]
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v6
|
||||
- name: Update APT
|
||||
run: sudo apt update
|
||||
- name: Install G++-Multilib
|
||||
run: sudo apt -y install g++-multilib
|
||||
- name: Configure CMake
|
||||
working-directory: ${{github.workspace}}/Build
|
||||
run: ./cmake_linux_clang_gcc.sh ${{matrix.build_type}} ${{env.UBUNTU_CLANG_VERSION}} -DCMAKE_CXX_FLAGS=-m32 -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
|
||||
- name: Build
|
||||
run: cmake --build ${{github.workspace}}/Build/Linux_${{matrix.build_type}} -j $(nproc)
|
||||
- name: Test
|
||||
working-directory: ${{github.workspace}}/Build/Linux_${{matrix.build_type}}
|
||||
run: ctest --output-on-failure --verbose
|
||||
|
||||
linux-clang-use-std-vector:
|
||||
runs-on: ubuntu-24.04
|
||||
name: Linux Clang using std::vector
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build_type: [Debug, ReleaseASAN]
|
||||
double_precision: [Yes]
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v6
|
||||
- name: Configure CMake
|
||||
working-directory: ${{github.workspace}}/Build
|
||||
run: ./cmake_linux_clang_gcc.sh ${{matrix.build_type}} ${{env.UBUNTU_CLANG_VERSION}} -DDOUBLE_PRECISION=${{matrix.double_precision}} -DUSE_STD_VECTOR=ON
|
||||
- name: Build
|
||||
run: cmake --build ${{github.workspace}}/Build/Linux_${{matrix.build_type}} -j $(nproc)
|
||||
- name: Test
|
||||
working-directory: ${{github.workspace}}/Build/Linux_${{matrix.build_type}}
|
||||
run: ctest --output-on-failure --verbose
|
||||
|
||||
linux-gcc:
|
||||
runs-on: ubuntu-24.04
|
||||
name: Linux GCC
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build_type: [Debug, Release, Distribution]
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v6
|
||||
- name: Install Vulkan
|
||||
run: ${{github.workspace}}/Build/ubuntu24_install_vulkan_sdk.sh
|
||||
- name: Configure CMake
|
||||
working-directory: ${{github.workspace}}/Build
|
||||
run: ./cmake_linux_clang_gcc.sh ${{matrix.build_type}} ${{env.UBUNTU_GCC_VERSION}}
|
||||
- name: Build
|
||||
run: cmake --build ${{github.workspace}}/Build/Linux_${{matrix.build_type}} -j $(nproc)
|
||||
- name: Test
|
||||
working-directory: ${{github.workspace}}/Build/Linux_${{matrix.build_type}}
|
||||
run: ctest --output-on-failure --verbose
|
||||
|
||||
linux-gcc-so:
|
||||
runs-on: ubuntu-24.04
|
||||
name: Linux GCC Shared Library
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build_type: [Debug, Release, Distribution]
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v6
|
||||
- name: Configure CMake
|
||||
working-directory: ${{github.workspace}}/Build
|
||||
run: ./cmake_linux_clang_gcc.sh ${{matrix.build_type}} ${{env.UBUNTU_GCC_VERSION}} -DBUILD_SHARED_LIBS=Yes
|
||||
- name: Build
|
||||
run: cmake --build ${{github.workspace}}/Build/Linux_${{matrix.build_type}} -j $(nproc)
|
||||
- name: Test
|
||||
working-directory: ${{github.workspace}}/Build/Linux_${{matrix.build_type}}
|
||||
run: ctest --output-on-failure --verbose
|
||||
|
||||
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]
|
||||
shared_lib: [No, Yes]
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v6
|
||||
- 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
|
||||
working-directory: ${{github.workspace}}/Build
|
||||
run: ./cmake_linux_mingw.sh ${{matrix.build_type}} -DBUILD_SHARED_LIBS=${{matrix.shared_lib}}
|
||||
- name: Build
|
||||
run: cmake --build Build/MinGW_${{matrix.build_type}} -j $(nproc)
|
||||
- name: Test
|
||||
working-directory: Build/MinGW_${{matrix.build_type}}
|
||||
run: ctest --output-on-failure --verbose
|
||||
|
||||
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@v6
|
||||
- name: Add msbuild to PATH
|
||||
uses: microsoft/setup-msbuild@v2
|
||||
- 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_no_object_stream:
|
||||
runs-on: windows-latest
|
||||
name: Visual Studio CL - No Object Stream
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build_type: [Debug, Distribution]
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v6
|
||||
- name: Add msbuild to PATH
|
||||
uses: microsoft/setup-msbuild@v2
|
||||
- name: Configure CMake
|
||||
run: cmake -B ${{github.workspace}}/Build/VS2022_CL -G "Visual Studio 17 2022" -A x64 Build -DENABLE_OBJECT_STREAM=NO
|
||||
- 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@v6
|
||||
- name: Add msbuild to PATH
|
||||
uses: microsoft/setup-msbuild@v2
|
||||
- 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@v6
|
||||
- name: Add msbuild to PATH
|
||||
uses: microsoft/setup-msbuild@v2
|
||||
- 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@v6
|
||||
- name: Add msbuild to PATH
|
||||
uses: microsoft/setup-msbuild@v2
|
||||
- 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@v6
|
||||
- name: Add msbuild to PATH
|
||||
uses: microsoft/setup-msbuild@v2
|
||||
- name: Install Windows 11 SDK (10.0.22621.0)
|
||||
# Alternative: Start-Process -wait -FilePath "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe" -ArgumentList "modify", "--installPath", """C:\Program Files\Microsoft Visual Studio\2022\Enterprise""", "--quiet", "--norestart", "--nocache", "--add", "Microsoft.VisualStudio.Component.Windows11SDK.22621" -Verb RunAs
|
||||
run: choco install windows-sdk-11-version-22H2-all -y
|
||||
- name: Configure CMake
|
||||
# Windows 11 SDK 10.0.22621.0 is the last SDK to support 32-bit ARM
|
||||
run: cmake -B ${{github.workspace}}/Build/VS2022_CL_ARM_32_BIT -G "Visual Studio 17 2022" -A ARM -DCMAKE_SYSTEM_VERSION="10.0.22621.0" -DCMAKE_CXX_COMPILER_WORKS=1 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@v6
|
||||
- name: Add msbuild to PATH
|
||||
uses: microsoft/setup-msbuild@v2
|
||||
- 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
|
||||
env:
|
||||
VULKAN_SDK_INSTALL: ${{github.workspace}}/vulkan_sdk
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build_type: [Debug, Release, Distribution]
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v6
|
||||
- name: Install Vulkan
|
||||
run: ${{github.workspace}}/Build/macos_install_vulkan_sdk.sh ${VULKAN_SDK_INSTALL}
|
||||
- name: Configure CMake
|
||||
run: |
|
||||
source ${VULKAN_SDK_INSTALL}/setup-env.sh
|
||||
cmake -B ${{github.workspace}}/Build/MacOS_${{matrix.build_type}} -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DCMAKE_CXX_COMPILER=clang++ Build
|
||||
- name: Build
|
||||
run: cmake --build ${{github.workspace}}/Build/MacOS_${{matrix.build_type}} -j $(nproc)
|
||||
- name: Test
|
||||
working-directory: ${{github.workspace}}/Build/MacOS_${{matrix.build_type}}
|
||||
run: ctest --output-on-failure --verbose
|
||||
|
||||
android:
|
||||
runs-on: ubuntu-latest
|
||||
name: Android
|
||||
strategy:
|
||||
fail-fast: false
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v6
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v5
|
||||
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@v6
|
||||
- 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
|
||||
|
||||
emscripten:
|
||||
runs-on: ubuntu-latest
|
||||
name: Emscripten
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v6
|
||||
- name: Setup emsdk
|
||||
uses: mymindstorm/setup-emsdk@v14
|
||||
with:
|
||||
version: ${{env.EMSCRIPTEN_VERSION}}
|
||||
- name: Verify emsdk
|
||||
run: emcc -v
|
||||
- name: Setup Node.js 18.x
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: 18.x
|
||||
- name: Configure CMake
|
||||
working-directory: ${{github.workspace}}/Build
|
||||
run: ./cmake_linux_emscripten.sh Distribution -DTARGET_HELLO_WORLD=OFF -DTARGET_PERFORMANCE_TEST=OFF
|
||||
- name: Build
|
||||
run: cmake --build ${{github.workspace}}/Build/WASM_Distribution -j $(nproc)
|
||||
- name: Test
|
||||
working-directory: ${{github.workspace}}/Build/WASM_Distribution
|
||||
run: node UnitTests.js
|
||||
Reference in New Issue
Block a user