Skip to content

Commit

Permalink
Merge branch 'dev' into patch-1
Browse files Browse the repository at this point in the history
  • Loading branch information
Legion-zialot committed Aug 28, 2024
2 parents 3322583 + 34f7e49 commit 4baf6c1
Show file tree
Hide file tree
Showing 1,713 changed files with 94,368 additions and 208,190 deletions.
10 changes: 10 additions & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Lines starting with '#' are comments.
# More details are here: https://help.github.com/articles/about-codeowners/

# CMake
CMakeLists.txt @Masterkatze
*.cmake @Masterkatze

# xrRender
/src/Layers/* @vTurbine @Xottab-DUTY
/src/Layers/xrAPI
57 changes: 41 additions & 16 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
@@ -1,37 +1,62 @@
AI:
- src/xrAICore/**/*
- src/xrGame/ai/**/*
- changed-files:
- any-glob-to-any-file:
- src/xrAICore/**/*
- src/xrGame/ai/**/*

Documentation:
- docs/**/*
- changed-files:
- any-glob-to-any-file:
- docs/**/*

External (3rd party):
- Externals/**/*
- changed-files:
- any-glob-to-any-file:
- Externals/**/*

Game assets:
- res/**/*
- changed-files:
- any-glob-to-any-file:
- res/**/*

Infrastructure:
- changed-files:
- any-glob-to-any-file:
- .github/**/*

Physics:
- src/xrPhysics/**/*
- changed-files:
- any-glob-to-any-file:
- src/xrPhysics/**/*

Renderer:
- src/Layers/**/*
- changed-files:
- any-glob-to-any-file:
- src/Layers/**/*

DirectX:
- src/Layers/xrRenderDX*
- src/Layers/xrRenderPC_R1
- src/Layers/xrRenderPC_R2
- src/Layers/xrRenderPC_R4
- changed-files:
- any-glob-to-any-file:
- src/Layers/xrRenderDX*
- src/Layers/xrRenderPC_R1
- src/Layers/xrRenderPC_R2
- src/Layers/xrRenderPC_R4

OpenGL:
- src/Layers/xrRenderGL
- src/Layers/xrRenderPC_GL
- changed-files:
- any-glob-to-any-file:
- src/Layers/xrRenderGL
- src/Layers/xrRenderPC_GL

Sound:
- src/xrSound/**/*
- changed-files:
- any-glob-to-any-file:
- src/xrSound/**/*

UI:
- src/xrUICore/**/*
- src/xrGame/ui/**/*
- changed-files:
- any-glob-to-any-file:
- src/xrUICore/**/*
- src/xrGame/ui/**/*


4 changes: 3 additions & 1 deletion .github/labeler_on_new_pr.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
pending review:
- '**/*'
- changed-files:
- any-glob-to-any-file:
- '**/*'
8 changes: 6 additions & 2 deletions .github/labeler_on_pr_approved.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
pending review:
- '!**/*'
- changed-files:
- any-glob-to-any-file:
- '!**/*'

ready to merge:
- '**/*'
- changed-files:
- any-glob-to-any-file:
- '**/*'
4 changes: 3 additions & 1 deletion .github/labeler_on_pr_merged.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
ready to merge:
- '!**/*'
- changed-files:
- any-glob-to-any-file:
- '!**/*'
214 changes: 125 additions & 89 deletions .github/workflows/cibuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,10 @@ on:
workflow_dispatch:

jobs:
build-windows:
windows:
name: Windows ${{ matrix.Configuration }} ${{ matrix.Platform }} (msvc)
runs-on: windows-latest
timeout-minutes: 35
strategy:
fail-fast: false
matrix:
Expand Down Expand Up @@ -67,133 +68,168 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh release upload --clobber latest-nightly (get-item res/*.*.7z)

build-ubuntu:
name: Ubuntu ${{ matrix.Configuration }} ${{ matrix.Platform }} (${{ matrix.CC }})
runs-on: ubuntu-latest
cmake:
name: ${{ matrix.platform.name }} ${{ matrix.configuration }} ${{ matrix.platform.arch }} (${{ matrix.platform.cc || 'unknown compiler' }})
runs-on: ${{ matrix.platform.os }}

container: ${{ matrix.platform.container || '' }}

defaults:
run:
shell: ${{ matrix.platform.shell || 'bash -e {0}' }}

env:
CFLAGS: "-w"
CXXFLAGS: "-w"

strategy:
fail-fast: false
matrix:
Configuration: [Debug, Release]
Platform: [x64]
CC: [gcc, clang]
include:
- CC: gcc
CXX: g++
- CC: clang
CXX: clang++
platform:
# cc is always set for the correct naming of the job.
# Both cc and cxx should be set if we want to change the compiler.
# You may also want to set XRAY_LINKER when changing the compiler.
- { name: Ubuntu, os: ubuntu-latest, arch: amd64, cc: gcc, }
- { name: Ubuntu, os: ubuntu-latest, arch: amd64, cc: clang, cxx: clang++, flags: "-DXRAY_LINKER=lld", }
#- { name: Ubuntu, os: ubuntu-latest, arch: arm64, cc: gcc, container: 'dockcross/linux-arm64', }
#- { name: Ubuntu, os: ubuntu-latest, arch: ppc64el, cc: gcc, container: 'dockcross/linux-ppc64le:latest', }
- { name: Alpine, os: ubuntu-latest, arch: x86_64, cc: gcc, shell: 'alpine.sh {0}', flags: "-DXRAY_LINKER=mold", }
- { name: Alpine, os: ubuntu-latest, arch: x86, cc: gcc, shell: 'alpine.sh {0}', flags: "-DXRAY_LINKER=mold", }
- { name: Fedora, os: ubuntu-latest, arch: x86_64, cc: gcc, container: 'fedora:latest', }
#- { name: Haiku, os: ubuntu-latest, arch: x86_64, cc: x86_64-unknown-haiku-gcc, cxx: x86_64-unknown-haiku-g++, container: 'haiku/cross-compiler:x86_64-r1beta4', }
- { name: macOS, os: macos-13, arch: x86_64, cc: clang, flags: "-DCMAKE_OSX_DEPLOYMENT_TARGET=13.6" }
- { name: macOS, os: macos-14, arch: arm64, cc: clang, flags: "-DCMAKE_OSX_DEPLOYMENT_TARGET=14.0", threads: 3 }

configuration: [Debug, Release]

steps:
- uses: actions/checkout@main
- name: Install latest stable Alpine Linux and packages
if: ${{ matrix.platform.name == 'Alpine' }}
uses: jirutka/setup-alpine@master
with:
submodules: recursive

- name: Deinit Crypto++
run: git submodule deinit Externals/cryptopp
arch: ${{ matrix.platform.arch }}
branch: 'latest-stable'
packages: build-base cmake git mold sdl2-dev lzo-dev libjpeg-turbo-dev openal-soft-dev libogg-dev libtheora-dev libvorbis-dev

- name: Install packages
- name: Install Ubuntu packages
if: ${{ matrix.platform.name == 'Ubuntu' }}
run: |
sudo dpkg --add-architecture ${{ matrix.platform.arch }}
sudo apt-get update -qq
sudo apt-get install -qq -y libsdl2-dev libglew-dev liblzo2-dev libjpeg-dev &&
sudo apt-get install -qq -y libopenal-dev libogg-dev libtheora-dev libvorbis-dev
sudo apt-get install -qq -y \
libsdl2-dev:${{ matrix.platform.arch }} \
liblzo2-dev:${{ matrix.platform.arch }} \
libjpeg-dev:${{ matrix.platform.arch }} \
libopenal-dev:${{ matrix.platform.arch }} \
libogg-dev:${{ matrix.platform.arch }} \
libtheora-dev:${{ matrix.platform.arch }} \
libvorbis-dev:${{ matrix.platform.arch }}
- name: Install macOS packages
if: ${{ matrix.platform.name == 'macOS' }}
run: |
brew update
brew install sdl2 lzo libogg libvorbis theora
- name: Install Clang
if: ${{ matrix.CC == 'clang' }}
uses: egor-tensin/setup-clang@master
- name: Install Fedora packages
if: ${{ matrix.platform.name == 'Fedora' }}
run: dnf install -y git gcc gcc-c++ rpmdevtools cmake SDL2-devel lzo-devel libjpeg-turbo-devel openal-devel libogg-devel libtheora-devel libvorbis-devel

- name: Set environment variables
if: ${{ matrix.platform.cc != '' && matrix.platform.cxx != '' }}
run: |
echo "CC=${{ matrix.platform.cc }}" >> $GITHUB_ENV
echo "CXX=${{ matrix.platform.cxx }}" >> $GITHUB_ENV
- uses: actions/checkout@main
with:
submodules: recursive

- name: Run CMake
env:
CC: ${{ matrix.CC }}
CXX: ${{ matrix.CXX }}
run: CFLAGS="-w" CXXFLAGS="-w" cmake -B build -DCMAKE_BUILD_TYPE=${{ matrix.Configuration }} -DCMAKE_UNITY_BUILD=ON
run: cmake -B build -DCMAKE_BUILD_TYPE=${{ matrix.configuration }} -DCMAKE_UNITY_BUILD=ON ${{ matrix.platform.flags }}

- name: Run CMake Build
id: cmake-build
env:
CC: ${{ matrix.CC }}
CXX: ${{ matrix.CXX }}
run: cmake --build build --config ${{ matrix.Configuration }} --parallel $(nproc || echo 4)
run: cmake --build build --config ${{ matrix.configuration }} --parallel ${{ matrix.platform.threads || 4 }}

- name: Make package
if: ${{ steps.cmake-build.outcome == 'success' }}
id: make-package
working-directory: build
#continue-on-error: true
env:
CC: ${{ matrix.CC }}
CXX: ${{ matrix.CXX }}
working-directory: build
run: |
make -j $(nproc || echo 4) package
file openxray_1.6.02_*.deb
cpack -B artifacts -C ${{ matrix.configuration }} -DCPACK_THREADS=${{ matrix.platform.threads || 4 }}
file artifacts/openxray*.*
- name: Upload OpenXRay artifact
if: ${{ steps.make-package.outcome == 'success' }}
uses: actions/upload-artifact@main
with:
name: openxray_1.6.02_${{ matrix.Configuration }}_${{ matrix.Platform }}_(github-${{ matrix.CC }}-${{ github.run_number }}).deb
path: build/openxray_1.6.02_*.deb
name: ${{ matrix.platform.name }} ${{ matrix.configuration }} ${{ matrix.platform.arch }} (${{ matrix.platform.cc }} github-${{ github.run_number }})
path: build/artifacts/openxray*.*

build-alpine:
name: Alpine ${{ matrix.Configuration }} ${{ matrix.Platform }} (gcc)
bsd:
name: ${{ matrix.platform.name }} ${{ matrix.configuration }} ${{ matrix.platform.arch }}
runs-on: ubuntu-latest
timeout-minutes: 35
env:
CFLAGS: "-w"
CXXFLAGS: "-w"
strategy:
fail-fast: false
matrix:
Configuration: [Debug, Release]
Platform: [x86_64, x86]
platform:
- { name: FreeBSD, os: freebsd, os-version: '14.0', arch: x86_64,
install-cmd: "sudo pkg update && sudo pkg install -y cmake sdl2 lzo2 jpeg-turbo openal-soft libogg libtheora libvorbis"
}
- { name: OpenBSD, os: openbsd, os-version: '7.5', arch: x86_64,
install-cmd: "sudo pkg_add cmake SDL2 lzo2 jpeg openal libogg libtheora libvorbis",
}
- { name: NetBSD, os: netbsd, os-version: '10.0', arch: x86_64,
install-cmd: "sudo pkgin -y install cmake SDL2 lzo libjpeg-turbo openal-soft libogg libtheora libvorbis",
}
configuration: [Debug, Release]

steps:
- uses: actions/checkout@main
with:
submodules: recursive

- name: Deinit Crypto++
run: |
git submodule deinit Externals/cryptopp
- name: Install latest stable Alpine Linux
uses: jirutka/setup-alpine@master
- name: Setup ${{ matrix.platform.name }} and packages
uses: cross-platform-actions/[email protected]
with:
arch: ${{ matrix.Platform }}
branch: 'latest-stable'
packages: build-base cmake mold sdl2-dev glew-dev lzo-dev libjpeg-turbo-dev openal-soft-dev libogg-dev libtheora-dev libvorbis-dev

- name: Run CMake x64
if: ${{ matrix.Platform == 'x86_64' }}
shell: alpine.sh {0}
run: CFLAGS="-w" CXXFLAGS="-w" cmake -B build -DCMAKE_BUILD_TYPE=${{ matrix.Configuration }} -DCMAKE_UNITY_BUILD=ON -DXRAY_LINKER=mold

- name: Run CMake x86
if: ${{ matrix.Platform == 'x86' }}
shell: alpine.sh {0}
run: CFLAGS="-m32 -w" CXXFLAGS="-m32 -w" cmake -B build -DCMAKE_BUILD_TYPE=${{ matrix.Configuration }} -DCMAKE_ASM_FLAGS=-m32 -DCMAKE_UNITY_BUILD=ON -DXRAY_LINKER=mold

- name: Run CMake Build
shell: alpine.sh {0}
run: cmake --build build --config ${{ matrix.Configuration }} --parallel $(nproc || echo 4)

build-macos:
name: macOS ${{ matrix.Configuration }} ${{ matrix.Platform }}
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
Configuration: [Debug, Release]

steps:
- uses: actions/checkout@main
with:
submodules: recursive

- name: Deinit Crypto++
run: git submodule deinit Externals/cryptopp

- name: Install packages
run: |
brew update
brew install sdl2 glew lzo libogg libvorbis theora
operating_system: ${{ matrix.platform.os }}
architecture: ${{ matrix.platform.arch }}
version: ${{ matrix.platform.os-version }}
cpu_count: 4
memory: 13G
environment_variables: CFLAGS CXXFLAGS
shutdown_vm: false
sync_files: runner-to-vm
run: ${{ matrix.platform.install-cmd }}

- name: Run CMake
run: CFLAGS="-w" CXXFLAGS="-w" cmake -B build -DCMAKE_BUILD_TYPE=${{ matrix.Configuration }} -DCMAKE_UNITY_BUILD=ON
uses: cross-platform-actions/[email protected]
with:
operating_system: ${{ matrix.platform.os }}
architecture: ${{ matrix.platform.arch }}
version: ${{ matrix.platform.os-version }}
cpu_count: 4
memory: 13G
environment_variables: CFLAGS CXXFLAGS
shutdown_vm: false
sync_files: false
run: cmake -B build -DCMAKE_BUILD_TYPE=${{ matrix.Configuration }} -DCMAKE_UNITY_BUILD=ON

- name: Run CMake Build
run: cmake --build build --config ${{ matrix.Configuration }} --parallel $(sysctl -n hw.ncpu || echo 4)
uses: cross-platform-actions/[email protected]
with:
operating_system: ${{ matrix.platform.os }}
architecture: ${{ matrix.platform.arch }}
version: ${{ matrix.platform.os-version }}
cpu_count: 4
memory: 13G
environment_variables: CFLAGS CXXFLAGS
shutdown_vm: false
sync_files: false
run: cmake --build build --config ${{ matrix.Configuration }} --parallel 4
Loading

0 comments on commit 4baf6c1

Please sign in to comment.