From acb09ad20d83c7fe71809e822f8ececea693ec7b Mon Sep 17 00:00:00 2001 From: donarturo11 Date: Sun, 22 Dec 2024 19:56:44 +0100 Subject: [PATCH] Use QT from mingw --- .github/workflows/main.yml | 47 ++++++++++++++++++++++++++++++-------- 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c3596f4..8bbd51e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -26,11 +26,11 @@ jobs: strategy: matrix: include: - - { name: "windows-qt6-msvc", os: windows-latest, flags: '-G"Visual Studio 17 2022"', shell: 'msys2 {0}', deps-prefix: "D:/deps", aqt-os: "windows", aqt-arch: "win64_msvc2019_64", aqt-prefix: "/opt/Qt", aqt-subdir: "msvc2019_64", qt-version: '6.5.1', msystem: 'UCRT64' } - - { name: "windows-qt5-mingw", os: windows-latest, flags: "", shell: 'msys2 {0}', deps-prefix: "/opt/deps", aqt-os: "windows", aqt-arch: "win64_mingw81", aqt-prefix: "/opt/Qt", aqt-subdir: "mingw81_64", qt-version: '5.15.2', msystem: 'MINGW64' } - - { name: "linux", os: ubuntu-latest, flags: "", shell: 'bash', deps-prefix: "/home/runner/deps", aqt-os: "linux", aqt-arch: "gcc_64", aqt-prefix: "/home/runner/Qt", aqt-subdir: "gcc_64", qt-version: '6.5.1'} - - { name: "macos-qt6-universal", os: macos-latest, flags: "-DCMAKE_OSX_ARCHITECTURES=\"x86_64;arm64\"", shell: 'bash', deps-prefix: "/Users/runner/deps", aqt-os: "mac", aqt-arch: "", aqt-prefix: "/Users/runner/Qt", aqt-subdir: "macos", qt-version: '6.5.1'} - - { name: "macos-qt5-legacy", os: macos-latest, flags: "-DCMAKE_OSX_DEPLOYMENT_TARGET=\"10.13\" -DCMAKE_OSX_ARCHITECTURES=\"x86_64\"", shell: 'bash', deps-prefix: "/Users/runner/deps", aqt-os: "mac", aqt-arch: "", aqt-prefix: "/Users/runner/Qt", aqt-subdir: "clang_64", qt-version: '5.15.2' } + - { name: "windows-qt6-msvc", os: windows-latest, flags: '-G"Visual Studio 17 2022"', shell: 'msys2 {0}', deps-prefix: "D:/deps", aqt-os: "windows", aqt-arch: "win64_msvc2019_64", aqt-prefix: "/opt/Qt", aqt-subdir: "msvc2019_64", qt-version: '6.5.1', msystem: 'UCRT64', build-fftw: true } + - { name: "windows-qt5-mingw", os: windows-latest, flags: "", shell: 'msys2 {0}', deps-prefix: "/opt/deps", aqt-os: "none", aqt-arch: "win64_mingw81", aqt-prefix: "/opt/Qt", aqt-subdir: "mingw81_64", qt-version: '5.15.2', msystem: 'MINGW64', build-fftw: false } + - { name: "linux", os: ubuntu-latest, flags: "", shell: 'bash', deps-prefix: "/home/runner/deps", aqt-os: "linux", aqt-arch: "gcc_64", aqt-prefix: "/home/runner/Qt", aqt-subdir: "gcc_64", qt-version: '6.5.1', build-fftw: true} + - { name: "macos-qt6-universal", os: macos-latest, flags: "-DCMAKE_OSX_ARCHITECTURES=\"x86_64;arm64\"", shell: 'bash', deps-prefix: "/Users/runner/deps", aqt-os: "mac", aqt-arch: "", aqt-prefix: "/Users/runner/Qt", aqt-subdir: "macos", qt-version: '6.5.1', build-fftw: true} + - { name: "macos-qt5-legacy", os: macos-latest, flags: "-DCMAKE_OSX_DEPLOYMENT_TARGET=\"10.13\" -DCMAKE_OSX_ARCHITECTURES=\"x86_64\"", shell: 'bash', deps-prefix: "/Users/runner/deps", aqt-os: "mac", aqt-arch: "", aqt-prefix: "/Users/runner/Qt", aqt-subdir: "clang_64", qt-version: '5.15.2', build-fftw: true } runs-on: ${{matrix.os}} defaults: run: @@ -77,6 +77,10 @@ jobs: ${MINGW_PACKAGE_PREFIX}-python-wheel \ ${MINGW_PACKAGE_PREFIX}-python-patch-ng \ ${MINGW_PACKAGE_PREFIX}-cmake \ + ${MINGW_PACKAGE_PREFIX}-gles-headers \ + ${MINGW_PACKAGE_PREFIX}-glew \ + ${MINGW_PACKAGE_PREFIX}-glfw \ + ${MINGW_PACKAGE_PREFIX}-angleproject \ ${MINGW_PACKAGE_PREFIX}-nsis - name: Setup windows env @@ -156,10 +160,12 @@ jobs: echo "INSTALL_PREFIX=$INSTALL_PREFIX" >> $GITHUB_ENV - name: Install AQT + if: ${{matrix.aqt-os != 'none'}} run: | python3 -m pip install --break-system-packages --user aqtinstall - - name: Install Qt + - name: Install Qt (with AQT) + if: ${{matrix.aqt-os != 'none'}} run: | AQT_INSTALL="python3 -m aqt install-qt -O ${{matrix.aqt-prefix}} ${{matrix.aqt-os}} desktop ${{matrix.qt-version}} ${{matrix.aqt-arch}}" QT6_MODULES=(qtconnectivity qtserialport qtcharts) @@ -174,8 +180,18 @@ jobs: ${AQT_INSTALL} -m $i done fi - + + - name: Install QT (mingw) + if: ${{matrix.aqt-os == 'none' && runner.os == 'Windows'}} + run: | + pacman -S --noconfirm \ + ${MINGW_PACKAGE_PREFIX}-qt5 \ + ${MINGW_PACKAGE_PREFIX}-qt5-translations \ + ${MINGW_PACKAGE_PREFIX}-fftw + + - name: FETCH FFTW3 + if: ${{matrix.build-fftw}} run: | wget https://www.fftw.org/fftw-3.3.10.tar.gz tar -vxzf fftw-3.3.10.tar.gz @@ -187,19 +203,20 @@ jobs: fi - name: Compile FFTW3 (WINDOWS) - if: ${{matrix.name == 'windows-qt6-msvc'}} + if: ${{matrix.name == 'windows-qt6-msvc' && matrix.build-fftw}} shell: pwsh run: | cmake -S fftw-3.3.10 -B ${{env.WORKDIR}}/fftw-build ${{matrix.flags}} -DCMAKE_INSTALL_PREFIX=${{env.DEPSPATH}} cmake --build ${{env.FFTW_BUILD_DIR}} --config Release - name: Compile FFTW3 (POSIX) - if: ${{matrix.name != 'windows-qt6-msvc'}} + if: ${{matrix.name != 'windows-qt6-msvc' && matrix.build-fftw}} run: | cmake -S fftw-3.3.10 -B ${{env.WORKDIR}}/fftw-build ${{matrix.flags}} -DCMAKE_INSTALL_PREFIX=${{env.DEPSPATH}} cmake --build ${{env.FFTW_BUILD_DIR}} - name: Install FFTW3 + if: ${{matrix.build-fftw}} run: cmake --install ${{env.FFTW_BUILD_DIR}} - name: Checkout Repo @@ -258,7 +275,17 @@ jobs: run: | export ARTIFACT_DIR=${{env.WORKDIR}}/${PACKAGE_NAME} find "${{env.DEPSPATH}}" -name "*.dll" -exec cp {} ${{env.APPDIR}}/ \; - ${{matrix.aqt-prefix}}/${{matrix.qt-version}}/${{matrix.aqt-subdir}}/bin/windeployqt.exe ${{env.APPDIR}}/ + if [[ ${{matrix.aqt-os }} == 'none' ]]; then + windeployqt ${{env.APPDIR}}/ || echo "::warning::Unknown error" + else + ${{matrix.aqt-prefix}}/${{matrix.qt-version}}/${{matrix.aqt-subdir}}/bin/windeployqt.exe ${{env.APPDIR}}/ + fi + if [[ ${{matrix.aqt-os }} == 'none' ]]; then + echo "::notice:: Deploying additional libs" + for i in $(ldd ${{env.APPDIR}}/QBrainwaveOSC.exe | cut -f 3 -d " " | grep "/bin/") + do cp -v $i ${{env.APPDIR}}/ + done + fi mkdir $ARTIFACT_DIR || echo "::warning::${ARTIFACT_DIR} already exists" cd $ARTIFACT_DIR cpack --config ${{env.WORKDIR}}/build/CPackConfig.cmake -G NSIS -V