Repository navigation
Fix CMake warning about an old version; fix variable shadowing warnin… #30
This file contains hidden or 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: 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@v5 | |
| # - 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@v5 | |
| - 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@v5 | |
| - name: Configure | |
| run: | | |
| mkdir build | |
| cd build | |
| cmake --help | |
| cmake -A x64 -DTINYGLTF_BUILD_LOADER_EXAMPLE=On -DTINYGLTF_BUILD_GL_EXAMPLES=Off -DTINYGLTF_BUILD_VALIDATOR_EXAMPLE=On -DTINYGLTF_BUILD_TESTS=ON .. | |
| cd .. | |
| - name: Build | |
| run: cmake --build build --config Release | |
| - name: Run tests | |
| run: ctest --test-dir build -C Release --output-on-failure | |
| build-linux: | |
| runs-on: ubuntu-latest | |
| name: Buld with gcc | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - 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 .. | |
| - name: v3_c_tests | |
| run: | | |
| cd tests | |
| cc -I../ -std=c11 -g -O0 -DTINYGLTF3_ENABLE_FS \ | |
| -o tester_v3_c tester_v3_c.c ../tiny_gltf_v3.c | |
| ./tester_v3_c | |
| cc -I../ -std=c11 -g -O0 -DTINYGLTF3_ENABLE_FS \ | |
| -o tester_v3_c_v1port tester_v3_c_v1port.c ../tiny_gltf_v3.c | |
| ./tester_v3_c_v1port | |
| cc -I../ -std=c11 -g -O0 \ | |
| -o tester_v3_json_c tester_v3_json_c.c | |
| ./tester_v3_json_c | |
| cc -I../ -std=c11 -ffreestanding -g -O0 \ | |
| -o tester_v3_freestanding tester_v3_freestanding.c | |
| ./tester_v3_freestanding | |
| cd .. | |
| build-rapidjson-linux: | |
| runs-on: ubuntu-latest | |
| name: Buld with gcc + rapidjson | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - 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@v5 | |
| - 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@v5 | |
| - 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 |