Initial commit

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
dinlo
2026-05-31 18:45:31 +08:00
commit e0a986eb30
1018 changed files with 615974 additions and 0 deletions
@@ -0,0 +1,5 @@
# Create a virtual environment with all tools installed
# ref: https://hub.docker.com/_/alpine
FROM alpine:edge
# Install system build dependencies
RUN apk add --no-cache git clang-extra-tools
@@ -0,0 +1,30 @@
name: AArch64 Linux CMake
on:
push:
pull_request:
schedule:
# min hours day(month) month day(week)
- cron: '0 0 7,22 * *'
jobs:
# Building using the github runner environement directly.
make:
runs-on: ubuntu-latest
strategy:
matrix:
targets: [
[aarch64],
[aarch64be],
[aarch64-linux-gnu],
[aarch64_be-linux-gnu]
]
fail-fast: false
env:
TARGET: ${{ matrix.targets[0] }}
steps:
- uses: actions/checkout@v2
- name: Build
run: make --directory=cmake/ci ${TARGET}_build
- name: Test
run: make --directory=cmake/ci ${TARGET}_test
@@ -0,0 +1,22 @@
name: amd64 FreeBSD CMake
on:
push:
pull_request:
schedule:
# min hours day(month) month day(week)
- cron: '0 0 7,22 * *'
jobs:
# Only MacOS hosted runner provides virtualisation with vagrant/virtualbox installed.
# see: https://github.com/actions/virtual-environments/tree/main/images/macos
make:
runs-on: macos-10.15
steps:
- uses: actions/checkout@v2
- name: vagrant version
run: Vagrant --version
- name: VirtualBox version
run: virtualbox -h
- name: Build
run: cd cmake/ci/vagrant/freebsd && vagrant up
@@ -0,0 +1,26 @@
name: amd64 Linux Bazel
on:
push:
pull_request:
schedule:
# min hours day(month) month day(week)
- cron: '0 0 7,22 * *'
jobs:
# Building using the github runner environement directly.
bazel:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v2
- name: Install Bazel
run: |
curl -fsSL https://bazel.build/bazel-release.pub.gpg | gpg --dearmor > bazel.gpg
sudo mv bazel.gpg /etc/apt/trusted.gpg.d/
echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
sudo apt-get update
sudo apt-get install bazel
bazel --version
- name: Test
run: bazel test -s --verbose_failures //...
@@ -0,0 +1,31 @@
name: amd64 Linux CMake
on:
push:
pull_request:
schedule:
# min hours day(month) month day(week)
- cron: '0 0 7,22 * *'
jobs:
# Building using the github runner environement directly.
make:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Env
run: make --directory=cmake/ci amd64_env
- name: Devel
run: make --directory=cmake/ci amd64_devel
- name: Build
run: make --directory=cmake/ci amd64_build
- name: Test
run: make --directory=cmake/ci amd64_test
- name: Install Env
run: make --directory=cmake/ci amd64_install_env
- name: Install Devel
run: make --directory=cmake/ci amd64_install_devel
- name: Install Build
run: make --directory=cmake/ci amd64_install_build
- name: Install Test
run: make --directory=cmake/ci amd64_install_test
@@ -0,0 +1,43 @@
name: amd64 MacOS CMake
on:
push:
pull_request:
schedule:
# min hours day(month) month day(week)
- cron: '0 0 7,22 * *'
jobs:
# Building using the github runner environement directly.
xcode:
runs-on: macos-latest
env:
CTEST_OUTPUT_ON_FAILURE: 1
steps:
- uses: actions/checkout@v2
- name: Check cmake
run: cmake --version
- name: Configure
run: cmake -S. -Bbuild -G "Xcode" -DCMAKE_CONFIGURATION_TYPES=Release
- name: Build
run: cmake --build build --config Release --target ALL_BUILD -v
- name: Test
run: cmake --build build --config Release --target RUN_TESTS -v
- name: Install
run: cmake --build build --config Release --target install -v
make:
runs-on: macos-latest
env:
CTEST_OUTPUT_ON_FAILURE: 1
steps:
- uses: actions/checkout@v2
- name: Check cmake
run: cmake --version
- name: Configure
run: cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release
- name: Build
run: cmake --build build --target all -v
- name: Test
run: cmake --build build --target test -v
- name: Install
run: cmake --build build --target install -v
@@ -0,0 +1,25 @@
name: amd64 Windows CMake
on:
push:
pull_request:
schedule:
# min hours day(month) month day(week)
- cron: '0 0 7,22 * *'
jobs:
# Building using the github runner environement directly.
msvc:
runs-on: windows-latest
env:
CTEST_OUTPUT_ON_FAILURE: 1
steps:
- uses: actions/checkout@v2
- name: Configure
run: cmake -S. -Bbuild -G "Visual Studio 17 2022" -DCMAKE_CONFIGURATION_TYPES=Release
- name: Build
run: cmake --build build --config Release --target ALL_BUILD -- /maxcpucount
- name: Test
run: cmake --build build --config Release --target RUN_TESTS -- /maxcpucount
- name: Install
run: cmake --build build --config Release --target INSTALL -- /maxcpucount
@@ -0,0 +1,31 @@
name: ARM Linux CMake
on:
push:
pull_request:
schedule:
# min hours day(month) month day(week)
- cron: '0 0 7,22 * *'
jobs:
# Building using the github runner environement directly.
make:
runs-on: ubuntu-latest
strategy:
matrix:
targets: [
[arm-linux-gnueabihf],
[armv8l-linux-gnueabihf],
[arm-linux-gnueabi],
[armeb-linux-gnueabihf],
[armeb-linux-gnueabi]
]
fail-fast: false
env:
TARGET: ${{ matrix.targets[0] }}
steps:
- uses: actions/checkout@v2
- name: Build
run: make --directory=cmake/ci ${TARGET}_build
- name: Test
run: make --directory=cmake/ci ${TARGET}_test
@@ -0,0 +1,24 @@
name: clang-format Check
on: [push, pull_request]
jobs:
# Building using the github runner environement directly.
clang-format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Fetch origin/main
run: git fetch origin main
- name: List of changed file(s)
run: git diff --name-only FETCH_HEAD
- name: Build clang-format docker
run: cd .github/workflows && docker build --tag=linter .
- name: Check clang-format
run: docker run --rm --init -v $(pwd):/repo linter:latest clang-format --version
- name: clang-format help
run: docker run --rm --init -v $(pwd):/repo linter:latest clang-format --help
- name: Check current commit
run: docker run --rm --init -v $(pwd):/repo -w /repo linter:latest sh -c "git diff --diff-filter=d --name-only FETCH_HEAD | grep '\.c$\|\.h$\|\.cc$' | xargs clang-format --style=file --dry-run --Werror "
@@ -0,0 +1,30 @@
name: MIPS Linux CMake
on:
push:
pull_request:
schedule:
# min hours day(month) month day(week)
- cron: '0 0 7,22 * *'
jobs:
# Building using the github runner environement directly.
make:
runs-on: ubuntu-latest
strategy:
matrix:
targets: [
[mips32],
[mips32el],
[mips64],
[mips64el]
]
fail-fast: false
env:
TARGET: ${{ matrix.targets[0] }}
steps:
- uses: actions/checkout@v2
- name: Build
run: make --directory=cmake/ci ${TARGET}_build
- name: Test
run: make --directory=cmake/ci ${TARGET}_test
@@ -0,0 +1,29 @@
name: POWER Linux CMake
on:
push:
pull_request:
schedule:
# min hours day(month) month day(week)
- cron: '0 0 7,22 * *'
jobs:
# Building using the github runner environement directly.
make:
runs-on: ubuntu-latest
strategy:
matrix:
targets: [
[ppc],
[ppc64],
[ppc64le],
]
fail-fast: false
env:
TARGET: ${{ matrix.targets[0] }}
steps:
- uses: actions/checkout@v2
- name: Build
run: make --directory=cmake/ci ${TARGET}_build
- name: Test
run: make --directory=cmake/ci ${TARGET}_test
@@ -0,0 +1,28 @@
name: RISCV Linux CMake
on:
push:
pull_request:
schedule:
# min hours day(month) month day(week)
- cron: '0 0 7,22 * *'
jobs:
# Building using the github runner environement directly.
make:
runs-on: ubuntu-latest
strategy:
matrix:
targets: [
[riscv32],
[riscv64],
]
fail-fast: false
env:
TARGET: ${{ matrix.targets[0] }}
steps:
- uses: actions/checkout@v2
- name: Build
run: make --directory=cmake/ci ${TARGET}_build
- name: Test
run: make --directory=cmake/ci ${TARGET}_test
@@ -0,0 +1,27 @@
name: s390x Linux CMake
on:
push:
pull_request:
schedule:
# min hours day(month) month day(week)
- cron: '0 0 7,22 * *'
jobs:
# Building using the github runner environement directly.
make:
runs-on: ubuntu-latest
strategy:
matrix:
targets: [
[s390x],
]
fail-fast: false
env:
TARGET: ${{ matrix.targets[0] }}
steps:
- uses: actions/checkout@v2
- name: Build
run: make --directory=cmake/ci ${TARGET}_build
- name: Test
run: make --directory=cmake/ci ${TARGET}_test