mirror of
https://github.com/minetest/irrlicht.git
synced 2025-02-23 22:30:22 +01:00
170 lines
4.6 KiB
YAML
170 lines
4.6 KiB
YAML
name: C/C++ CI
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
|
|
# gcc4.8 is too old and ubuntu-18.04 image is not supported in GitHub Actions anymore,
|
|
# so disable this build.
|
|
## compile with older gcc4.8
|
|
#build-gcc48:
|
|
|
|
# runs-on: ubuntu-18.04
|
|
# name: Build with gcc 4.8
|
|
|
|
# steps:
|
|
# - name: Checkout
|
|
# uses: actions/checkout@v1
|
|
|
|
# - name: Build
|
|
# run: |
|
|
# sudo apt-get update
|
|
# sudo apt-get install -y build-essential
|
|
# sudo apt-get install -y gcc-4.8 g++-4.8
|
|
# g++-4.8 -std=c++11 -o loader_example loader_example.cc
|
|
|
|
# - name: NoexceptBuild
|
|
# run: |
|
|
# g++-4.8 -DTINYGLTF_NOEXCEPTION -std=c++11 -o loader_example loader_example.cc
|
|
|
|
# - name: RapidjsonBuild
|
|
# run: |
|
|
# git clone https://github.com/Tencent/rapidjson
|
|
# g++-4.8 -DTINYGLTF_USE_RAPIDJSON -I./rapidjson/include/rapidjson -std=c++11 -o loader_example loader_example.cc
|
|
|
|
# compile with mingw gcc cross
|
|
build-mingw-cross:
|
|
|
|
runs-on: ubuntu-latest
|
|
name: Build with MinGW gcc cross
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Build
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y build-essential
|
|
sudo apt-get install -y mingw-w64
|
|
x86_64-w64-mingw32-g++ -std=c++11 -o loader_example loader_example.cc
|
|
|
|
# Windows(x64) + Visual Studio 2022 build
|
|
# Assume windows-latest have VS2022 installed
|
|
build-windows-msvc:
|
|
|
|
runs-on: windows-latest
|
|
name: Build for Windows(x64, MSVC)
|
|
|
|
# Use system installed cmake
|
|
# https://help.github.com/en/actions/reference/software-installed-on-github-hosted-runners
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v1
|
|
- name: Configure
|
|
run: |
|
|
mkdir build
|
|
cd build
|
|
cmake --help
|
|
cmake -G "Visual Studio 17 2022" -A x64 -DTINYGLTF_BUILD_LOADER_EXAMPLE=On -DTINYGLTF_BUILD_GL_EXAMPLES=Off -DTINYGLTF_BUILD_VALIDATOR_EXAMPLE=On ..
|
|
cd ..
|
|
- name: Build
|
|
run: cmake --build build --config Release
|
|
|
|
|
|
build-linux:
|
|
|
|
runs-on: ubuntu-latest
|
|
name: Buld with gcc
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: build
|
|
run: |
|
|
g++ -std=c++11 -o loader_example loader_example.cc
|
|
- name: test
|
|
run: |
|
|
./loader_example models/Cube/Cube.gltf
|
|
|
|
- name: tests
|
|
run: |
|
|
cd tests
|
|
g++ -I../ -std=c++11 -g -O0 -o tester tester.cc
|
|
./tester
|
|
cd ..
|
|
|
|
- name: noexcept_tests
|
|
run: |
|
|
cd tests
|
|
g++ -DTINYGLTF_NOEXCEPTION -I../ -std=c++11 -g -O0 -o tester_noexcept tester.cc
|
|
./tester_noexcept
|
|
cd ..
|
|
|
|
|
|
build-rapidjson-linux:
|
|
|
|
runs-on: ubuntu-latest
|
|
name: Buld with gcc + rapidjson
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: build
|
|
run: |
|
|
git clone https://github.com/Tencent/rapidjson
|
|
g++ -v
|
|
g++ -DTINYGLTF_USE_RAPIDJSON -I./rapidjson/include/rapidjson -std=c++11 -o loader_example loader_example.cc
|
|
|
|
- name: loader_example_test
|
|
run: |
|
|
./loader_example models/Cube/Cube.gltf
|
|
|
|
- name: tests
|
|
run: |
|
|
cd tests
|
|
g++ -DTINYGLTF_USE_RAPIDJSON -I../rapidjson/include/rapidjson -I../ -std=c++11 -g -O0 -o tester tester.cc
|
|
./tester
|
|
cd ..
|
|
|
|
- name: noexcept_tests
|
|
run: |
|
|
cd tests
|
|
g++ -DTINYGLTF_USE_RAPIDJSON -I../rapidjson/include/rapidjson -DTINYGLTF_NOEXCEPTION -I../ -std=c++11 -g -O0 -o tester_noexcept tester.cc
|
|
./tester_noexcept
|
|
cd ..
|
|
|
|
# Cross-compile for aarch64 linux target
|
|
build-cross-aarch64:
|
|
|
|
runs-on: ubuntu-latest
|
|
name: Build on cross aarch64
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
- name: Build
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y build-essential
|
|
sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
|
|
|
|
git clone https://github.com/Tencent/rapidjson
|
|
aarch64-linux-gnu-g++ -DTINYGLTF_USE_RAPIDJSON -I./rapidjson/include/rapidjson -std=c++11 -g -O0 -o loader_example loader_example.cc
|
|
|
|
# macOS clang
|
|
build-macos:
|
|
|
|
runs-on: macos-latest
|
|
name: Build on macOS
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v1
|
|
- name: Build
|
|
run: |
|
|
clang++ -std=c++11 -g -O0 -o loader_example loader_example.cc
|
|
./loader_example models/Cube/Cube.gltf
|
|
|
|
git clone https://github.com/Tencent/rapidjson
|
|
clang++ -DTINYGLTF_USE_RAPIDJSON -I./rapidjson/include/rapidjson -std=c++11 -g -O0 -o loader_example loader_example.cc
|
|
|