99
1010jobs :
1111 build :
12- name : Build on ${{ matrix.os }}
12+ name : Build on ${{ matrix.os }} (${{ matrix.compiler }})
1313 runs-on : ${{ matrix.os }}
1414 strategy :
1515 fail-fast : false
1616 matrix :
17- os : [ubuntu-latest, windows-latest, macos-latest]
17+ include :
18+ - os : ubuntu-latest
19+ compiler : gcc
20+ - os : windows-latest
21+ compiler : msvc
22+ - os : windows-latest
23+ compiler : mingw
24+ - os : macos-latest
25+ compiler : clang
1826
1927 steps :
2028 - name : Checkout Code
@@ -31,23 +39,42 @@ jobs:
3139 with :
3240 version : ' 6.10.0'
3341 modules : ' qtmultimedia'
42+ arch : ${{ matrix.compiler == 'mingw' && 'win64_mingw' || '' }}
43+ tools : ${{ matrix.compiler == 'mingw' && 'tools_mingw1310' || '' }}
3444
35- - name : Configure CMake
45+ - name : Configure CMake (MinGW)
46+ if : matrix.compiler == 'mingw'
47+ run : cmake -B build -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install_dir
48+
49+ - name : Configure CMake (MSVC)
50+ if : matrix.compiler == 'msvc'
51+ run : cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install_dir
52+
53+ - name : Configure CMake (Unix)
54+ if : runner.os != 'Windows'
3655 run : cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install_dir
3756
38- - name : Build and Install
57+ - name : Build and Install (MinGW)
58+ if : matrix.compiler == 'mingw'
59+ run : cmake --build build --target install -j 4
60+
61+ - name : Build and Install (MSVC)
62+ if : matrix.compiler == 'msvc'
63+ run : cmake --build build --config Release --target install -j 4
64+
65+ - name : Build and Install (Unix)
66+ if : runner.os != 'Windows'
3967 run : cmake --build build --config Release --target install -j 4
4068
4169 - name : Deploy Qt (Windows)
4270 if : runner.os == 'Windows'
4371 shell : cmd
4472 run : |
45- windeployqt --release install_dir\bin\adskiller.exe
73+ windeployqt --release --compiler-runtime install_dir\bin\adskiller.exe
4674
4775 - name : Deploy Qt (Linux)
4876 if : runner.os == 'Linux'
4977 run : |
50- # Copy multimedia plugins manually
5178 QT_PLUGIN_PATH="${Qt6_DIR}/../../../plugins"
5279 if [ -d "$QT_PLUGIN_PATH/multimedia" ]; then
5380 mkdir -p install_dir/lib/plugins/multimedia
5784 - name : Deploy Qt (macOS)
5885 if : runner.os == 'macOS'
5986 run : |
60- # Run macdeployqt on the shared library location
6187 QT_PLUGIN_PATH="${Qt6_DIR}/../../../plugins"
6288 APP_BUNDLE=$(find install_dir -name "*.app" -maxdepth 1 | head -1)
6389 if [ -n "$APP_BUNDLE" ] && [ -d "$QT_PLUGIN_PATH/multimedia" ]; then
6894 - name : Upload Artifact
6995 uses : actions/upload-artifact@v4
7096 with :
71- name : pixelblast -${{ runner.os }}
97+ name : adskiller -${{ runner.os }}-${{ matrix.compiler }}
7298 path : install_dir/
0 commit comments