Skip to content

Commit 9fdf84a

Browse files
committed
Add CI
1 parent 78c1fbc commit 9fdf84a

File tree

2 files changed

+86
-16
lines changed

2 files changed

+86
-16
lines changed
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# This is a copy of ci-unix-shared-installed.yml for finding bugs in the bool implementation.
2+
3+
name: CI Unix Shared Installed
4+
on: [push, pull_request]
5+
6+
permissions:
7+
contents: read
8+
9+
# Cancel the workflow if a new one is triggered from the same PR, branch, or tag, except on main.
10+
concurrency:
11+
group: ${{ github.workflow }}-${{ github.ref }}
12+
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
13+
14+
jobs:
15+
build-shared-installed:
16+
strategy:
17+
fail-fast: false
18+
# Generate the configurations:
19+
# case 0: use stdbool, case 1: use enums, case 2: nodiscard
20+
matrix:
21+
os: [ubuntu-latest, windows-latest]
22+
case: [0, 1, 2]
23+
24+
runs-on: ${{ matrix.os }}
25+
26+
steps:
27+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
28+
- uses: ./.github/actions/setup-linux
29+
if: runner.os == 'Linux'
30+
with:
31+
codec-aom: "SYSTEM"
32+
codec-dav1d: "SYSTEM"
33+
gtest: "SYSTEM"
34+
libyuv: "SYSTEM"
35+
- uses: ./.github/actions/setup-windows
36+
if: runner.os == 'Windows'
37+
with:
38+
codec-aom: "SYSTEM"
39+
codec-dav1d: "SYSTEM"
40+
gtest: "SYSTEM"
41+
libyuv: "SYSTEM"
42+
43+
- name: Set clang as compiler
44+
if: runner.os == 'Linux'
45+
run: |
46+
echo "AVIF_CMAKE_C_COMPILER=-DCMAKE_C_COMPILER=clang" >> $GITHUB_ENV
47+
echo "AVIF_CMAKE_CXX_COMPILER=-DCMAKE_CXX_COMPILER=clang++" >> $GITHUB_ENV
48+
- name: Leave compiler as default
49+
if: runner.os == 'Windows'
50+
run: |
51+
echo "AVIF_CMAKE_C_COMPILER=" >> $env:GITHUB_ENV
52+
echo "AVIF_CMAKE_CXX_COMPILER=" >> $env:GITHUB_ENV
53+
54+
- name: Use stdbool for AVIF_TRUE/AVIF_FALSE
55+
if: ${{ matrix.case == 0}}
56+
run: |
57+
sed -i 's/#include <stdint.h>/#include <stdint.h>\n#include <stdbool.h>/' include/avif/avif.h
58+
sed -i 's/typedef int avifBool;/typedef bool avifBool;/' include/avif/avif.h
59+
sed -i 's/#define AVIF_TRUE 1/#define AVIF_TRUE true/' include/avif/avif.h
60+
sed -i 's/#define AVIF_FALSE 0/#define AVIF_FALSE false/' include/avif/avif.h
61+
- name: Use enums for AVIF_TRUE/AVIF_FALSE
62+
if: ${{ matrix.case == 1}}
63+
run: |
64+
sed -i 's/#define AVIF_TRUE 1/enum avifTrueFalse_{ AVIF_TRUE 1,/' include/avif/avif.h
65+
sed -i 's/#define AVIF_FALSE 0/AVIF_FALSE 0};/' include/avif/avif.h
66+
- name: Enable nodiscard
67+
if: ${{ matrix.case == 2}}
68+
run: echo "CMAKE_AVIF_FLAGS=\"-DAVIF_ENABLE_NODISCARD=ON\"" >> $GITHUB_ENV
69+
70+
- name: Prepare libavif (cmake)
71+
run: >
72+
cmake -G Ninja -S . -B build
73+
-DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON
74+
-DAVIF_CODEC_AOM=SYSTEM
75+
-DAVIF_CODEC_AOM_DECODE=OFF -DAVIF_CODEC_AOM_ENCODE=ON
76+
-DAVIF_CODEC_DAV1D=SYSTEM
77+
-DAVIF_BUILD_EXAMPLES=ON -DAVIF_BUILD_APPS=ON
78+
-DAVIF_BUILD_TESTS=ON -DAVIF_GTEST=SYSTEM
79+
-DAVIF_BUILD_GDK_PIXBUF=ON -DCMAKE_INSTALL_PREFIX=./build/install
80+
-DAVIF_ENABLE_WERROR=ON ${{ env.AVIF_CMAKE_C_COMPILER}} ${{ env.AVIF_CMAKE_CXX_COMPILER }}
81+
${{ env.CMAKE_AVIF_FLAGS }}
82+
- name: Build libavif
83+
run: cmake --build build --config Release --parallel 4
84+
- name: Run AVIF Tests
85+
working-directory: ./build
86+
run: ctest -j $(getconf _NPROCESSORS_ONLN) --output-on-failure

.github/workflows/ci-unix-shared-installed.yml

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -90,19 +90,3 @@ jobs:
9090
endif()" >> CMakeLists.txt
9191
9292
cmake . -DCMAKE_PREFIX_PATH=../install
93-
- name: Prepare libavif with [[nodiscard]] (cmake)
94-
# CMake 3.21 is needed to force C23 for [[nodiscard]].
95-
if: runner.oldest-cmake == 'false'
96-
run: >
97-
cmake -G Ninja -S . -B build_nodiscard
98-
-DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON
99-
-DAVIF_CODEC_AOM=SYSTEM
100-
-DAVIF_CODEC_AOM_DECODE=OFF -DAVIF_CODEC_AOM_ENCODE=ON
101-
-DAVIF_CODEC_DAV1D=SYSTEM
102-
-DAVIF_ENABLE_NODISCARD=ON -DAVIF_ENABLE_WERROR=ON
103-
-DAVIF_BUILD_EXAMPLES=ON -DAVIF_BUILD_APPS=ON
104-
-DAVIF_BUILD_TESTS=ON -DAVIF_GTEST=LOCAL
105-
-DAVIF_BUILD_GDK_PIXBUF=ON ${{ env.CMAKE_AVIF_FLAGS }}
106-
- name: Build libavif with [[nodiscard]]
107-
if: runner.oldest-cmake == 'false'
108-
run: cmake --build build_nodiscard --config Release --parallel 4

0 commit comments

Comments
 (0)