@@ -10,103 +10,55 @@ env:
1010 BUILD_TYPE : Release
1111
1212jobs :
13- # NOTES:
14- # * JsonCpp 1.9.6 is needed but it is not available on Ubuntu 24.04 yet
15- # * StormByte is not available on ubuntu so it is always bundled
16- build_GCC_all_ON :
13+ build :
1714 runs-on : ubuntu-24.04
1815
19- steps :
20- - name : Checkout repository and submodules
21- uses : actions/checkout@v3
22- with :
23- submodules : recursive
24-
25- - name : Update repository
26- run : sudo apt update
27-
28- - name : Install dependencies
29- run : sudo apt install -y libsqlite3-dev ffmpeg clang cmake
30-
31- - name : Pretending hdr10plus_tool is installed
32- run : sudo touch /usr/bin/hdr10plus_tool && sudo chmod +x /usr/bin/hdr10plus_tool
33-
34- - name : Configure CMake All ON
35- run : cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++ -DENABLE_FDK_AAC=ON -DENABLE_H264=ON -DENABLE_H265=ON -DENABLE_LAME=ON -DENABLE_LIBOPUS=ON -DENABLE_LIBVORBIS=ON -DENABLE_LIBVPX=ON -DENABLE_XVID=ON -DWITH_SYSTEM_JSONCPP=OFF -DWITH_SYSTEM_STORMBYTE=OFF -DWITH_SYSTEM_SQLITE=ON
36-
37- - name : Build
38- run : cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
39-
40- build_GCC_all_OFF :
41- runs-on : ubuntu-24.04
42-
43- steps :
44- - name : Checkout repository and submodules
45- uses : actions/checkout@v3
46- with :
47- submodules : recursive
48-
49- - name : Update repository
50- run : sudo apt update
51-
52- - name : Install dependencies
53- run : sudo apt install -y ffmpeg clang cmake
54-
55- - name : Pretending hdr10plus_tool is installed
56- run : sudo touch /usr/bin/hdr10plus_tool && sudo chmod +x /usr/bin/hdr10plus_tool
57-
58- - name : Configure CMake All OFF
59- run : cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++ -DENABLE_FDK_AAC=OFF -DENABLE_H264=OFF -DENABLE_H265=OFF -DENABLE_LAME=OFF -DENABLE_LIBOPUS=OFF -DENABLE_LIBVORBIS=OFF -DENABLE_LIBVPX=OFF -DENABLE_XVID=OFF -DWITH_SYSTEM_JSONCPP=OFF -DWITH_SYSTEM_STORMBYTE=OFF -DWITH_SYSTEM_SQLITE=OFF
60-
61- - name : Build
62- run : cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
63-
64- build_Clang_all_ON :
65- runs-on : ubuntu-24.04
66-
67- steps :
68- - name : Checkout repository and submodules
69- uses : actions/checkout@v3
70- with :
71- submodules : recursive
72-
73- - name : Update repository
74- run : sudo apt update
75-
76- - name : Install dependencies
77- run : sudo apt install -y libsqlite3-dev ffmpeg clang cmake
78-
79- - name : Pretending hdr10plus_tool is installed
80- run : sudo touch /usr/bin/hdr10plus_tool && sudo chmod +x /usr/bin/hdr10plus_tool
81-
82- - name : Configure CMake All ON
83- run : cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DENABLE_FDK_AAC=ON -DENABLE_H264=ON -DENABLE_H265=ON -DENABLE_LAME=ON -DENABLE_LIBOPUS=ON -DENABLE_LIBVORBIS=ON -DENABLE_LIBVPX=ON -DENABLE_XVID=ON -DWITH_SYSTEM_JSONCPP=OFF -DWITH_SYSTEM_STORMBYTE=OFF -DWITH_SYSTEM_SQLITE=ON
84-
85- - name : Build with Clang
86- run : cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
87-
88- build_Clang_all_OFF :
89- runs-on : ubuntu-24.04
16+ strategy :
17+ matrix :
18+ compiler : [gcc, clang]
19+ enable_flags : [ON, OFF]
20+ stdlib : [stdc++, libc++]
21+ exclude :
22+ - compiler : gcc
23+ stdlib : libc++
9024
9125 steps :
92- - name : Checkout repository and submodules
93- uses : actions/checkout@v3
94- with :
95- submodules : recursive
96-
97- - name : Update repository
98- run : sudo apt update
99-
100- - name : Install dependencies
101- run : sudo apt install -y ffmpeg clang cmake
102-
103- - name : Pretending hdr10plus_tool is installed
104- run : sudo touch /usr/bin/hdr10plus_tool && sudo chmod +x /usr/bin/hdr10plus_tool
105-
106- - name : Configure CMake All OFF
107- run : cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DENABLE_FDK_AAC=OFF -DENABLE_H264=OFF -DENABLE_H265=OFF -DENABLE_LAME=OFF -DENABLE_LIBOPUS=OFF -DENABLE_LIBVORBIS=OFF -DENABLE_LIBVPX=OFF -DENABLE_XVID=OFF -DWITH_SYSTEM_JSONCPP=OFF -DWITH_SYSTEM_STORMBYTE=OFF -DWITH_SYSTEM_SQLITE=OFF
108-
109- - name : Build with Clang
110- run : cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
111-
112-
26+ - name : Checkout repository and submodules
27+ uses : actions/checkout@v3
28+ with :
29+ submodules : recursive
30+
31+ - name : Update repository
32+ run : sudo apt update
33+
34+ - name : Install dependencies
35+ run : |
36+ sudo apt install -y libsqlite3-dev ffmpeg cmake clang
37+ if [[ "${{ matrix.compiler }}" == "clang" && "${{ matrix.stdlib }}" == "libc++" ]]; then
38+ sudo apt install -y libc++-dev
39+ fi
40+
41+ - name : Pretending hdr10plus_tool is installed
42+ run : sudo touch /usr/bin/hdr10plus_tool && sudo chmod +x /usr/bin/hdr10plus_tool
43+
44+ - name : Configure CMake
45+ run : |
46+ cmake -B ${{github.workspace}}/build \
47+ -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} \
48+ -DCMAKE_C_COMPILER=/usr/bin/${{ matrix.compiler }} \
49+ -DCMAKE_CXX_COMPILER=$([[ ${{ matrix.compiler }} == 'gcc' ]] && echo '/usr/bin/g++' || echo '/usr/bin/clang++') \
50+ -DCMAKE_CXX_FLAGS="${{ matrix.stdlib == 'libc++' && matrix.compiler == 'clang' && '-stdlib=libc++' || '' }}" \
51+ -DWITH_SYSTEM_JSONCPP=OFF \
52+ -DWITH_SYSTEM_STORMBYTE=OFF \
53+ -DWITH_SYSTEM_SQLITE=${{ matrix.enable_flags }} \
54+ -DENABLE_FDK_AAC=${{ matrix.enable_flags }} \
55+ -DENABLE_H264=${{ matrix.enable_flags }} \
56+ -DENABLE_H265=${{ matrix.enable_flags }} \
57+ -DENABLE_LAME=${{ matrix.enable_flags }} \
58+ -DENABLE_LIBOPUS=${{ matrix.enable_flags }} \
59+ -DENABLE_LIBVORBIS=${{ matrix.enable_flags }} \
60+ -DENABLE_LIBVPX=${{ matrix.enable_flags }} \
61+ -DENABLE_XVID=${{ matrix.enable_flags }}
62+
63+ - name : Build
64+ run : cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
0 commit comments