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