mirror of
https://github.com/lighttransport/tinyusdz.git
synced 2026-01-18 01:11:17 +01:00
- Split build-arm64 into build-arm64-gcc and build-arm64-clang - build-arm64-gcc: Uses system GCC on Ubuntu 22.04 ARM - build-arm64-clang: Installs Clang 21 from LLVM apt repository (previously used system Clang 14 which is outdated) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
161 lines
4.2 KiB
YAML
161 lines
4.2 KiB
YAML
name: Linux
|
|
|
|
on:
|
|
push:
|
|
branches: [ dev ]
|
|
pull_request:
|
|
branches: [ dev ]
|
|
|
|
jobs:
|
|
|
|
# Disable gcc4.9 and gcc5 since its too obsolete and failed to do apt-get
|
|
## compile with oldest gcc4.9 which supports (most of)C++14
|
|
#build-gcc49:
|
|
|
|
# runs-on: ubuntu-latest
|
|
# name: Build with gcc 4.9
|
|
# steps:
|
|
# - name: Checkout
|
|
# uses: actions/checkout@v1
|
|
# - name: CmakeAndBuild
|
|
# run: |
|
|
# sudo apt-add-repository -y 'deb http://dk.archive.ubuntu.com/ubuntu/ xenial main'
|
|
# sudo apt-add-repository -y 'deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe'
|
|
# sudo apt-get update
|
|
# sudo apt-get install -y build-essential
|
|
# sudo apt-get install -y gcc-4.9 g++-4.9 gcc-4.9-multilib
|
|
# ./scripts/bootstrap-gcc-49.sh
|
|
# cd build-gcc49
|
|
# make VERBOSE=1
|
|
|
|
## compile with older gcc5
|
|
#build-gcc5:
|
|
|
|
# runs-on: ubuntu-latest
|
|
# name: Build with gcc 5
|
|
|
|
# steps:
|
|
# - name: Checkout
|
|
# uses: actions/checkout@v1
|
|
# - name: CmakeAndBuild
|
|
# run: |
|
|
# sudo apt-add-repository -y 'deb http://dk.archive.ubuntu.com/ubuntu/ xenial main'
|
|
# sudo apt-add-repository -y 'deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe'
|
|
# sudo apt-get update
|
|
# sudo apt-get install -y build-essential
|
|
# sudo apt-get install -y gcc-5 g++-5
|
|
# ./scripts/bootstrap-gcc-5.sh
|
|
# cd build-gcc5
|
|
# make VERBOSE=1
|
|
|
|
|
|
# We can now use native arm64 runner
|
|
## Cross-compile for aarch64 linux target
|
|
#build-cross-aarch64:
|
|
|
|
# runs-on: ubuntu-latest
|
|
# name: Build on cross aarch64
|
|
|
|
# steps:
|
|
# - name: Checkout
|
|
# uses: actions/checkout@v1
|
|
# - name: CmakeAndBuild
|
|
# 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
|
|
# ./scripts/bootstrap-gcc-aarch64-cross-ci.sh
|
|
# cd build-cross
|
|
# make VERBOSE=1
|
|
|
|
# Build with OpenSubdiv
|
|
build-osd:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: configure
|
|
run: ./scripts/bootstrap-cmake-linux-with-osd.sh
|
|
- name: make
|
|
run: cd build && make
|
|
- name: test
|
|
run: cd build && ctest --output-on-failure
|
|
|
|
# 32bit build(Linux only)
|
|
build-32bit:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: setup
|
|
run: |
|
|
sudo apt update
|
|
sudo apt-get install -y gcc-multilib g++-multilib
|
|
- name: configure
|
|
run: ./scripts/bootstrap-cmake-linux-32bit.sh
|
|
- name: make
|
|
run: cd build_m32 && make
|
|
- name: test
|
|
run: cd build_m32 && ctest --output-on-failure
|
|
|
|
build:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
# ubuntu-latest(Ubuntu 22.04 as of 2024/01/03) has clang installed,
|
|
# so use clang
|
|
# TODO: Use libc++ for STL?
|
|
- name: configure
|
|
run: CXX=clang++ CC=clang ./scripts/bootstrap-cmake-linux.sh
|
|
- name: make
|
|
run: cd build && make
|
|
- name: tests
|
|
run: cd build && ctest --output-on-failure
|
|
|
|
build-arm64-gcc:
|
|
|
|
runs-on: ubuntu-22.04-arm
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: prep
|
|
run: |
|
|
lscpu
|
|
cat /proc/cpuinfo
|
|
- name: configure
|
|
run: CXX=g++ CC=gcc ./scripts/bootstrap-cmake-linux.sh
|
|
- name: make
|
|
run: cd build && make
|
|
- name: tests
|
|
run: cd build && ctest --output-on-failure
|
|
|
|
build-arm64-clang:
|
|
|
|
runs-on: ubuntu-22.04-arm
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: prep
|
|
run: |
|
|
lscpu
|
|
cat /proc/cpuinfo
|
|
# Install recent Clang from LLVM apt repository
|
|
- name: install clang-21
|
|
run: |
|
|
wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
|
|
sudo add-apt-repository -y "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-21 main"
|
|
sudo apt-get update
|
|
sudo apt-get install -y clang-21
|
|
- name: configure
|
|
run: CXX=clang++-21 CC=clang-21 ./scripts/bootstrap-cmake-linux.sh
|
|
- name: make
|
|
run: cd build && make
|
|
- name: tests
|
|
run: cd build && ctest --output-on-failure
|