Skip to content

Commit 9d7f9e5

Browse files
committed
feat: Support macos/x86_64, macos/arm64, linux/x86_64, linux/arm64, windows/x86_64
1 parent a258848 commit 9d7f9e5

File tree

7 files changed

+396
-40
lines changed

7 files changed

+396
-40
lines changed
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
name: "linux-amd64"
2+
3+
runs:
4+
using: composite
5+
steps:
6+
- name: Code checkout
7+
uses: actions/checkout@v4
8+
9+
- name: Install dependencies
10+
shell: bash
11+
run: |
12+
sudo apt-get install nasm
13+
mkdir -p $GITHUB_WORKSPACE/local_amd64/lib
14+
15+
- name: Install vcpkg
16+
shell: bash
17+
run: |
18+
git clone https://github.com/microsoft/vcpkg builder
19+
./builder/bootstrap-vcpkg.sh
20+
cp vcpkg/linux-amd64-static.cmake builder/triplets/community
21+
22+
- name: Build libyuv & dav1d
23+
shell: bash
24+
run: |
25+
./builder/vcpkg install "libyuv:linux-amd64-static"
26+
./builder/vcpkg install "dav1d:linux-amd64-static"
27+
28+
- name: Build svt-av1
29+
shell: bash
30+
run: |
31+
git clone https://gitlab.com/AOMediaCodec/SVT-AV1 $GITHUB_WORKSPACE/svt-av1_amd64
32+
33+
cd $GITHUB_WORKSPACE/svt-av1_amd64/Build
34+
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/svt-av1_amd64/local ..
35+
ninja && ninja install
36+
37+
- name: Prepare dependencies
38+
shell: bash
39+
run: |
40+
ls -R $GITHUB_WORKSPACE/builder/installed/linux-amd64-static/lib
41+
ls -R $GITHUB_WORKSPACE/local_amd64/lib/
42+
43+
cp -r $GITHUB_WORKSPACE/builder/installed/linux-amd64-static/include $GITHUB_WORKSPACE/local_amd64/include
44+
cp $GITHUB_WORKSPACE/builder/installed/linux-amd64-static/lib/*.a $GITHUB_WORKSPACE/local_amd64/lib/
45+
46+
cp -r $GITHUB_WORKSPACE/svt-av1_amd64/local/include/svt-av1 $GITHUB_WORKSPACE/local_amd64/include
47+
cp $GITHUB_WORKSPACE/svt-av1_amd64/local/lib/libSvtAv1Enc.a $GITHUB_WORKSPACE/local_amd64/lib/libSvtAv1Enc.a
48+
49+
- name: Build avif
50+
shell: bash
51+
run: |
52+
git clone https://github.com/AOMediaCodec/libavif avif_amd64
53+
54+
mkdir -p $GITHUB_WORKSPACE/avif_amd64/build
55+
cd $GITHUB_WORKSPACE/avif_amd64/build
56+
cmake -DBUILD_SHARED_LIBS=OFF -DAVIF_BUILD_APPS=OFF -DAVIF_CODEC_DAV1D=SYSTEM -DAVIF_CODEC_SVT=SYSTEM -DAVIF_LIBYUV=SYSTEM -DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/local_amd64 ..
57+
make
58+
59+
- name: Prepare local
60+
shell: bash
61+
run: |
62+
mv $GITHUB_WORKSPACE/local_amd64/lib/libSvtAv1Enc.a $GITHUB_WORKSPACE/local_amd64/lib/libsvtav1.a
63+
cp -r $GITHUB_WORKSPACE/avif_amd64/include/avif $GITHUB_WORKSPACE/local_amd64/include
64+
cp $GITHUB_WORKSPACE/avif_amd64/build/libavif.a $GITHUB_WORKSPACE/local_amd64/lib/libavif.a
65+
66+
- name: Zip local
67+
shell: bash
68+
run: |
69+
cd $GITHUB_WORKSPACE/local_amd64
70+
7z a -tzip -mx=9 $GITHUB_WORKSPACE/local_linux_amd64.zip include lib
71+
72+
- name: Save artifacts
73+
uses: actions/upload-artifact@v4
74+
with:
75+
name: binaries-linux-amd64
76+
path: "*.zip"
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
name: "linux-arm64"
2+
3+
runs:
4+
using: composite
5+
steps:
6+
- name: Code checkout
7+
uses: actions/checkout@v4
8+
9+
- name: Install dependencies
10+
shell: bash
11+
run: |
12+
sudo apt-get install nasm
13+
mkdir -p $GITHUB_WORKSPACE/local_arm64/lib
14+
15+
- name: Install vcpkg
16+
shell: bash
17+
run: |
18+
git clone https://github.com/microsoft/vcpkg builder
19+
./builder/bootstrap-vcpkg.sh
20+
cp vcpkg/linux-arm64-static.cmake builder/triplets/community
21+
22+
- name: Build libyuv & dav1d
23+
shell: bash
24+
run: |
25+
./builder/vcpkg install "libyuv:linux-arm64-static"
26+
./builder/vcpkg install "dav1d:linux-arm64-static"
27+
28+
- name: Build svt-av1
29+
shell: bash
30+
run: |
31+
git clone https://gitlab.com/AOMediaCodec/SVT-AV1 $GITHUB_WORKSPACE/svt-av1_arm64
32+
33+
cd $GITHUB_WORKSPACE/svt-av1_arm64/Build
34+
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/svt-av1_arm64/local ..
35+
ninja && ninja install
36+
37+
- name: Prepare dependencies
38+
shell: bash
39+
run: |
40+
cp -r $GITHUB_WORKSPACE/builder/installed/linux-arm64-static/include $GITHUB_WORKSPACE/local_arm64/include
41+
cp $GITHUB_WORKSPACE/builder/installed/linux-arm64-static/lib/*.a $GITHUB_WORKSPACE/local_arm64/lib
42+
43+
cp -r $GITHUB_WORKSPACE/svt-av1_arm64/local/include/svt-av1 $GITHUB_WORKSPACE/local_arm64/include
44+
cp $GITHUB_WORKSPACE/svt-av1_arm64/local/lib/libSvtAv1Enc.a $GITHUB_WORKSPACE/local_arm64/lib/libSvtAv1Enc.a
45+
46+
- name: Build avif
47+
shell: bash
48+
run: |
49+
git clone https://github.com/AOMediaCodec/libavif avif_arm64
50+
51+
mkdir -p $GITHUB_WORKSPACE/avif_arm64/build
52+
cd $GITHUB_WORKSPACE/avif_arm64/build
53+
cmake -DBUILD_SHARED_LIBS=OFF -DAVIF_BUILD_APPS=OFF -DAVIF_CODEC_DAV1D=SYSTEM -DAVIF_CODEC_SVT=SYSTEM -DAVIF_LIBYUV=SYSTEM -DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/local_arm64 ..
54+
make
55+
56+
- name: Prepare local
57+
shell: bash
58+
run: |
59+
mv $GITHUB_WORKSPACE/local_arm64/lib/libSvtAv1Enc.a $GITHUB_WORKSPACE/local_arm64/lib/libsvtav1.a
60+
cp -r $GITHUB_WORKSPACE/avif_arm64/include/avif $GITHUB_WORKSPACE/local_arm64/include
61+
cp $GITHUB_WORKSPACE/avif_arm64/build/libavif.a $GITHUB_WORKSPACE/local_arm64/lib/libavif.a
62+
63+
- name: Zip local
64+
shell: bash
65+
run: |
66+
cd $GITHUB_WORKSPACE/local_arm64
67+
7z a -tzip -mx=9 $GITHUB_WORKSPACE/local_linux_arm64.zip include lib
68+
69+
- name: Save artifacts
70+
uses: actions/upload-artifact@v4
71+
with:
72+
name: binaries-linux-arm64
73+
path: "*.zip"

.github/actions/macos-all/action.yml

Lines changed: 70 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,33 +7,93 @@ runs:
77
uses: actions/checkout@v4
88

99
- name: Install dependencies
10+
shell: bash
1011
run: |
1112
brew install nasm
13+
mkdir -p $GITHUB_WORKSPACE/local_amd64/lib
14+
mkdir -p $GITHUB_WORKSPACE/local_arm64/lib
1215
1316
- name: Install vcpkg
17+
shell: bash
1418
run: |
1519
git clone https://github.com/microsoft/vcpkg builder
1620
./builder/bootstrap-vcpkg.sh
1721
cp vcpkg/darwin-amd64-static.cmake builder/triplets/community
1822
cp vcpkg/darwin-arm64-static.cmake builder/triplets/community
1923
20-
- name: Build libyuv
24+
- name: Build libyuv & dav1d
25+
shell: bash
2126
run: |
2227
./builder/vcpkg install "libyuv:darwin-amd64-static"
28+
./builder/vcpkg install "dav1d:darwin-amd64-static"
29+
2330
./builder/vcpkg install "libyuv:darwin-arm64-static"
31+
./builder/vcpkg install "dav1d:darwin-arm64-static"
32+
33+
- name: Build svt-av1
34+
shell: bash
35+
run: |
36+
git clone https://gitlab.com/AOMediaCodec/SVT-AV1 $GITHUB_WORKSPACE/svt-av1_amd64
37+
cp -r $GITHUB_WORKSPACE/svt-av1_amd64 $GITHUB_WORKSPACE/svt-av1_arm64
38+
39+
cd $GITHUB_WORKSPACE/svt-av1_amd64/Build
40+
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/svt-av1_amd64/local -DCMAKE_OSX_ARCHITECTURES=x86_64 ..
41+
ninja && ninja install
42+
43+
cd $GITHUB_WORKSPACE/svt-av1_arm64/Build
44+
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/svt-av1_arm64/local -DCMAKE_OSX_ARCHITECTURES=arm64 ..
45+
ninja && ninja install
46+
47+
- name: Prepare dependencies
48+
shell: bash
49+
run: |
50+
cp -r $GITHUB_WORKSPACE/builder/installed/darwin-amd64-static/include $GITHUB_WORKSPACE/local_amd64/include
51+
cp $GITHUB_WORKSPACE/builder/installed/darwin-amd64-static/lib/*.a $GITHUB_WORKSPACE/local_amd64/lib
52+
53+
cp -r $GITHUB_WORKSPACE/builder/installed/darwin-arm64-static/include $GITHUB_WORKSPACE/local_arm64/include
54+
cp $GITHUB_WORKSPACE/builder/installed/darwin-arm64-static/lib/*.a $GITHUB_WORKSPACE/local_arm64/lib
55+
56+
cp -r $GITHUB_WORKSPACE/svt-av1_amd64/local/include/svt-av1 $GITHUB_WORKSPACE/local_amd64/include
57+
cp $GITHUB_WORKSPACE/svt-av1_amd64/local/lib/libSvtAv1Enc.a $GITHUB_WORKSPACE/local_amd64/lib/libSvtAv1Enc.a
58+
59+
cp -r $GITHUB_WORKSPACE/svt-av1_arm64/local/include/svt-av1 $GITHUB_WORKSPACE/local_arm64/include
60+
cp $GITHUB_WORKSPACE/svt-av1_arm64/local/lib/libSvtAv1Enc.a $GITHUB_WORKSPACE/local_arm64/lib/libSvtAv1Enc.a
61+
62+
- name: Build avif
63+
shell: bash
64+
run: |
65+
git clone https://github.com/AOMediaCodec/libavif avif_amd64
66+
cp -r $GITHUB_WORKSPACE/avif_amd64 $GITHUB_WORKSPACE/avif_arm64
67+
68+
mkdir -p $GITHUB_WORKSPACE/avif_amd64/build
69+
cd $GITHUB_WORKSPACE/avif_amd64/build
70+
cmake -DBUILD_SHARED_LIBS=OFF -DAVIF_BUILD_APPS=OFF -DAVIF_CODEC_DAV1D=SYSTEM -DAVIF_CODEC_SVT=SYSTEM -DAVIF_LIBYUV=SYSTEM -DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/local_amd64 -DCMAKE_OSX_ARCHITECTURES=x86_64 ..
71+
make
72+
73+
mkdir -p $GITHUB_WORKSPACE/avif_arm64/build
74+
cd $GITHUB_WORKSPACE/avif_arm64/build
75+
cmake -DBUILD_SHARED_LIBS=OFF -DAVIF_BUILD_APPS=OFF -DAVIF_CODEC_DAV1D=SYSTEM -DAVIF_CODEC_SVT=SYSTEM -DAVIF_LIBYUV=SYSTEM -DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/local_arm64 -DCMAKE_OSX_ARCHITECTURES=arm64 ..
76+
make
2477
25-
- name: Zip libyuv
78+
- name: Prepare local
79+
shell: bash
2680
run: |
27-
mv $GITHUB_WORKSPACE/builder/installed/darwin-amd64-static/include $GITHUB_WORKSPACE/build/libyuv/include
81+
mv $GITHUB_WORKSPACE/local_amd64/lib/libSvtAv1Enc.a $GITHUB_WORKSPACE/local_amd64/lib/libsvtav1.a
82+
cp -r $GITHUB_WORKSPACE/avif_amd64/include/avif $GITHUB_WORKSPACE/local_amd64/include
83+
cp $GITHUB_WORKSPACE/avif_amd64/build/libavif.a $GITHUB_WORKSPACE/local_amd64/lib/libavif.a
84+
85+
mv $GITHUB_WORKSPACE/local_arm64/lib/libSvtAv1Enc.a $GITHUB_WORKSPACE/local_arm64/lib/libsvtav1.a
86+
cp -r $GITHUB_WORKSPACE/avif_arm64/include/avif $GITHUB_WORKSPACE/local_arm64/include
87+
cp $GITHUB_WORKSPACE/avif_arm64/build/libavif.a $GITHUB_WORKSPACE/local_arm64/lib/libavif.a
2888
29-
mkdir -p $GITHUB_WORKSPACE/build/libyuv/lib
30-
cp $GITHUB_WORKSPACE/builder/installed/darwin-amd64-static/lib/*.a $GITHUB_WORKSPACE/build/libyuv/lib
31-
cd $GITHUB_WORKSPACE/build/libyuv
32-
7z a -tzip -mx=9 $GITHUB_WORKSPACE/libyuv_darwin_amd64.zip include lib
89+
- name: Zip local
90+
shell: bash
91+
run: |
92+
cd $GITHUB_WORKSPACE/local_amd64
93+
7z a -tzip -mx=9 $GITHUB_WORKSPACE/local_darwin_amd64.zip include lib
3394
34-
rm -rf $GITHUB_WORKSPACE/build/libyuv/lib/*
35-
cp $GITHUB_WORKSPACE/builder/installed/darwin-arm64-static/lib/*.a $GITHUB_WORKSPACE/build/libyuv/lib
36-
7z a -tzip -mx=9 $GITHUB_WORKSPACE/libyuv_darwin_arm64.zip include lib
95+
cd $GITHUB_WORKSPACE/local_arm64
96+
7z a -tzip -mx=9 $GITHUB_WORKSPACE/local_darwin_arm64.zip include lib
3797
3898
- name: Save artifacts
3999
uses: actions/upload-artifact@v4
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
name: "windows-amd64"
2+
3+
runs:
4+
using: composite
5+
steps:
6+
- name: Code checkout
7+
uses: actions/checkout@v4
8+
9+
- name: Install NASM
10+
uses: ilammy/setup-nasm@v1
11+
12+
- name: Install MSYS2
13+
uses: msys2/setup-msys2@v2
14+
with:
15+
update: true
16+
install: |
17+
mingw-w64-x86_64-gcc
18+
mingw-w64-x86_64-cmake
19+
mingw-w64-x86_64-make
20+
21+
- name: Install vcpkg
22+
shell: bash
23+
run: |
24+
mkdir -p $GITHUB_WORKSPACE/local_amd64/lib
25+
git clone https://github.com/microsoft/vcpkg builder
26+
./builder/bootstrap-vcpkg.sh
27+
cp vcpkg/windows-amd64-static.cmake builder/triplets/community
28+
29+
- name: Build libyuv & dav1d
30+
shell: bash
31+
run: |
32+
./builder/vcpkg install "libyuv:windows-amd64-static"
33+
./builder/vcpkg install "dav1d:windows-amd64-static"
34+
35+
- name: Build svt-av1
36+
shell: bash
37+
run: |
38+
git clone https://gitlab.com/AOMediaCodec/SVT-AV1 $GITHUB_WORKSPACE/svt-av1_amd64
39+
mkdir -p $GITHUB_WORKSPACE/svt-av1_amd64/local
40+
cd $GITHUB_WORKSPACE/svt-av1_amd64/Build
41+
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/svt-av1_amd64/local ..
42+
mingw32-make -j4
43+
mingw32-make install
44+
45+
- name: Prepare dependencies
46+
shell: bash
47+
run: |
48+
cp -r $GITHUB_WORKSPACE/builder/installed/windows-amd64-static/include $GITHUB_WORKSPACE/local_amd64/
49+
for file in "$GITHUB_WORKSPACE"/builder/installed/windows-amd64-static/lib/*.a; do
50+
cp "$file" "$GITHUB_WORKSPACE/local_amd64/lib/"
51+
done
52+
53+
cp -r "$GITHUB_WORKSPACE"/svt-av1_amd64/local/include/svt-av1 "$GITHUB_WORKSPACE"/local_amd64/include/
54+
cp "$GITHUB_WORKSPACE"/svt-av1_amd64/local/lib/libSvtAv1Enc.a "$GITHUB_WORKSPACE"/local_amd64/lib/libSvtAv1Enc.a
55+
56+
- name: Build avif
57+
shell: bash
58+
run: |
59+
git clone https://github.com/AOMediaCodec/libavif avif_amd64
60+
61+
mkdir -p $GITHUB_WORKSPACE/avif_amd64/build
62+
cd $GITHUB_WORKSPACE/avif_amd64/build
63+
cmake -G "MinGW Makefiles" -DBUILD_SHARED_LIBS=OFF -DAVIF_BUILD_APPS=OFF -DAVIF_CODEC_DAV1D=SYSTEM -DAVIF_CODEC_SVT=SYSTEM -DAVIF_LIBYUV=SYSTEM -DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/local_amd64 ..
64+
mingw32-make -j4
65+
66+
- name: Prepare local
67+
shell: bash
68+
run: |
69+
mv $GITHUB_WORKSPACE/local_amd64/lib/libSvtAv1Enc.a $GITHUB_WORKSPACE/local_amd64/lib/libsvtav1.a
70+
cp -r "$GITHUB_WORKSPACE"/avif_amd64/include/avif "$GITHUB_WORKSPACE"/local_amd64/include/
71+
cp "$GITHUB_WORKSPACE"/avif_amd64/build/libavif.a "$GITHUB_WORKSPACE"/local_amd64/lib/libavif.a
72+
73+
- name: Zip local
74+
shell: bash
75+
run: |
76+
cd $GITHUB_WORKSPACE/local_amd64
77+
7z a -tzip -mx=9 $GITHUB_WORKSPACE/local_windows_amd64.zip include lib
78+
79+
- name: Save artifacts
80+
uses: actions/upload-artifact@v4
81+
with:
82+
name: binaries-windows-amd64
83+
path: "*.zip"

.github/workflows/build-macos.yml

Lines changed: 0 additions & 18 deletions
This file was deleted.

0 commit comments

Comments
 (0)