CMake refactoring #197
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: | |
push: | |
branches-ignore: | |
- "dependabot/*" | |
pull_request: | |
workflow_dispatch: | |
jobs: | |
build-windows: | |
name: Windows ${{ matrix.Configuration }} ${{ matrix.Platform }} (msvc) | |
runs-on: windows-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
Configuration: [Debug, Mixed, Release, Release Master Gold] | |
Platform: [x64, x86] | |
steps: | |
- uses: actions/checkout@main | |
with: | |
submodules: recursive | |
- uses: microsoft/setup-msbuild@main | |
- uses: nuget/setup-nuget@main | |
- name: Restore NuGet packages | |
run: nuget restore src\engine.sln | |
- name: Build | |
working-directory: src | |
run: msbuild /m /p:Configuration="${{ matrix.Configuration }}" /p:Platform="${{ matrix.Platform }}" engine.sln | |
- name: Prepare artifacts | |
shell: cmd | |
run: misc/windows/xr_pack_build.cmd "${{ matrix.Configuration }}" "${{ matrix.Platform }}" | |
- name: Upload OpenXRay artifact | |
uses: actions/upload-artifact@main | |
with: | |
name: OpenXRay.${{ matrix.Configuration }} ${{ matrix.Platform }} (github-${{ github.run_number }}).7z | |
path: res/OpenXRay.*.7z | |
- name: Upload Symbols | |
uses: actions/upload-artifact@main | |
with: | |
name: Symbols.${{ matrix.Configuration }} ${{ matrix.Platform }} (github-${{ github.run_number }}).7z | |
path: res/Symbols.*.7z | |
- name: Upload Utils | |
uses: actions/upload-artifact@main | |
with: | |
name: Utils.${{ matrix.Configuration }} ${{ matrix.Platform }} (github-${{ github.run_number }}).7z | |
path: res/Utils.*.7z | |
- name: Update latest-nightly tag | |
uses: EndBug/latest-tag@latest | |
if: github.ref_name == 'dev' | |
id: update-latest-nightly-tag | |
with: | |
ref: latest-nightly | |
- name: Publish latest nightly build | |
if: ${{ steps.update-latest-nightly-tag.outcome == 'success' }} | |
env: | |
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 | |
strategy: | |
fail-fast: false | |
matrix: | |
Configuration: [Debug, Release] | |
Platform: [x64] | |
CC: [gcc, clang] | |
include: | |
- CC: gcc | |
CXX: g++ | |
- CC: clang | |
CXX: clang++ | |
steps: | |
- uses: actions/checkout@main | |
with: | |
submodules: recursive | |
- name: Deinit Crypto++ | |
run: git submodule deinit Externals/cryptopp | |
- name: Install packages | |
run: | | |
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 | |
- name: Install Clang | |
if: ${{ matrix.CC == 'clang' }} | |
uses: egor-tensin/setup-clang@master | |
- 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 | |
- 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) | |
- 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 }} | |
run: | | |
make -j $(nproc || echo 4) package | |
file openxray_1.6.02_*.deb | |
- 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 | |
build-alpine: | |
name: Alpine ${{ matrix.Configuration }} ${{ matrix.Platform }} (gcc) | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
Configuration: [Debug, Release] | |
Platform: [x86_64, x86] | |
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 | |
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 | |
- name: Run CMake | |
run: CFLAGS="-w" CXXFLAGS="-w" 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) |