fix: add Windows icon conversion step and update Nuitka build options for improved compatibility

This commit is contained in:
Vxrtrauter
2026-02-11 02:30:56 +01:00
parent ddc45f41c1
commit 431f5fd684
+135 -39
View File
@@ -105,6 +105,20 @@ jobs:
fi fi
upx --version | head -1 upx --version | head -1
- name: Convert icon for Windows
if: runner.os == 'Windows'
shell: bash
run: |
python -c "
from PySide6.QtGui import QImage
from PySide6.QtWidgets import QApplication
import sys
app = QApplication.instance() or QApplication(sys.argv)
img = QImage('core/interface/assets/logo.png')
img.save('app_icon.ico')
print('Icon converted successfully')
"
- name: Build with Nuitka (Windows) - name: Build with Nuitka (Windows)
if: runner.os == 'Windows' if: runner.os == 'Windows'
shell: bash shell: bash
@@ -115,23 +129,51 @@ jobs:
--onefile-tempdir-spec="{CACHE_DIR}/${{ env.APP_NAME }}/${{ env.VERSION }}" \ --onefile-tempdir-spec="{CACHE_DIR}/${{ env.APP_NAME }}/${{ env.VERSION }}" \
--assume-yes-for-downloads \ --assume-yes-for-downloads \
--windows-console-mode=disable \ --windows-console-mode=disable \
--windows-icon-from-ico=app_icon.ico \
--enable-plugin=pyside6 \ --enable-plugin=pyside6 \
--enable-plugin=upx \ --enable-plugin=upx \
--upx-binary="${{ env.UPX_BINARY }}" \ --upx-binary="${{ env.UPX_BINARY }}" \
--noinclude-qt-translations \ --noinclude-qt-translations \
--noinclude-dlls='Qt6WebEngine*' \ --nofollow-import-to=PySide6.QtWebEngineWidgets \
--noinclude-dlls='Qt6Multimedia*' \ --nofollow-import-to=PySide6.QtWebEngineCore \
--noinclude-dlls='Qt6Quick*' \ --nofollow-import-to=PySide6.QtWebChannel \
--noinclude-dlls='Qt6Qml*' \ --nofollow-import-to=PySide6.QtMultimedia \
--noinclude-dlls='Qt6Designer*' \ --nofollow-import-to=PySide6.QtMultimediaWidgets \
--noinclude-dlls='Qt63D*' \ --nofollow-import-to=PySide6.QtQuick \
--noinclude-dlls='Qt6Bluetooth*' \ --nofollow-import-to=PySide6.QtQuickWidgets \
--noinclude-dlls='Qt6Nfc*' \ --nofollow-import-to=PySide6.QtQml \
--noinclude-dlls='Qt6Sensors*' \ --nofollow-import-to=PySide6.QtDesigner \
--noinclude-dlls='Qt6Serial*' \ --nofollow-import-to=PySide6.Qt3DCore \
--noinclude-dlls='Qt6Test*' \ --nofollow-import-to=PySide6.Qt3DRender \
--noinclude-dlls='Qt6Location*' \ --nofollow-import-to=PySide6.Qt3DInput \
--noinclude-dlls='Qt6Pdf*' \ --nofollow-import-to=PySide6.QtBluetooth \
--nofollow-import-to=PySide6.QtNfc \
--nofollow-import-to=PySide6.QtSensors \
--nofollow-import-to=PySide6.QtSerialPort \
--nofollow-import-to=PySide6.QtTest \
--nofollow-import-to=PySide6.QtLocation \
--nofollow-import-to=PySide6.QtPdf \
--nofollow-import-to=PySide6.QtPdfWidgets \
--nofollow-import-to=PySide6.QtCharts \
--nofollow-import-to=PySide6.QtDataVisualization \
--nofollow-import-to=PySide6.QtGraphs \
--nofollow-import-to=PySide6.QtNetworkAuth \
--nofollow-import-to=PySide6.QtPositioning \
--nofollow-import-to=PySide6.QtRemoteObjects \
--nofollow-import-to=PySide6.QtScxml \
--nofollow-import-to=PySide6.QtSpatialAudio \
--nofollow-import-to=PySide6.QtSvgWidgets \
--nofollow-import-to=PySide6.QtSvg \
--nofollow-import-to=PySide6.QtTextToSpeech \
--nofollow-import-to=PySide6.QtHelp \
--nofollow-import-to=PySide6.QtOpenGL \
--nofollow-import-to=PySide6.QtOpenGLWidgets \
--nofollow-import-to=PySide6.QtDBus \
--nofollow-import-to=PySide6.QtSql \
--nofollow-import-to=PySide6.QtXml \
--nofollow-import-to=PySide6.QtConcurrent \
--nofollow-import-to=PySide6.QtHttpServer \
--nofollow-import-to=PySide6.QtStateMachine \
--include-data-dir=core/interface/assets=core/interface/assets \ --include-data-dir=core/interface/assets=core/interface/assets \
--include-data-files=build_info.json=build_info.json \ --include-data-files=build_info.json=build_info.json \
--include-data-files=build_info.json=core/build_info.json \ --include-data-files=build_info.json=core/build_info.json \
@@ -151,19 +193,46 @@ jobs:
--enable-plugin=upx \ --enable-plugin=upx \
--upx-binary="${{ env.UPX_BINARY }}" \ --upx-binary="${{ env.UPX_BINARY }}" \
--noinclude-qt-translations \ --noinclude-qt-translations \
--noinclude-dlls='libQt6WebEngine*' \ --nofollow-import-to=PySide6.QtWebEngineWidgets \
--noinclude-dlls='libQt6Multimedia*' \ --nofollow-import-to=PySide6.QtWebEngineCore \
--noinclude-dlls='libQt6Quick*' \ --nofollow-import-to=PySide6.QtWebChannel \
--noinclude-dlls='libQt6Qml*' \ --nofollow-import-to=PySide6.QtMultimedia \
--noinclude-dlls='libQt6Designer*' \ --nofollow-import-to=PySide6.QtMultimediaWidgets \
--noinclude-dlls='libQt63D*' \ --nofollow-import-to=PySide6.QtQuick \
--noinclude-dlls='libQt6Bluetooth*' \ --nofollow-import-to=PySide6.QtQuickWidgets \
--noinclude-dlls='libQt6Nfc*' \ --nofollow-import-to=PySide6.QtQml \
--noinclude-dlls='libQt6Sensors*' \ --nofollow-import-to=PySide6.QtDesigner \
--noinclude-dlls='libQt6Serial*' \ --nofollow-import-to=PySide6.Qt3DCore \
--noinclude-dlls='libQt6Test*' \ --nofollow-import-to=PySide6.Qt3DRender \
--noinclude-dlls='libQt6Location*' \ --nofollow-import-to=PySide6.Qt3DInput \
--noinclude-dlls='libQt6Pdf*' \ --nofollow-import-to=PySide6.QtBluetooth \
--nofollow-import-to=PySide6.QtNfc \
--nofollow-import-to=PySide6.QtSensors \
--nofollow-import-to=PySide6.QtSerialPort \
--nofollow-import-to=PySide6.QtTest \
--nofollow-import-to=PySide6.QtLocation \
--nofollow-import-to=PySide6.QtPdf \
--nofollow-import-to=PySide6.QtPdfWidgets \
--nofollow-import-to=PySide6.QtCharts \
--nofollow-import-to=PySide6.QtDataVisualization \
--nofollow-import-to=PySide6.QtGraphs \
--nofollow-import-to=PySide6.QtNetworkAuth \
--nofollow-import-to=PySide6.QtPositioning \
--nofollow-import-to=PySide6.QtRemoteObjects \
--nofollow-import-to=PySide6.QtScxml \
--nofollow-import-to=PySide6.QtSpatialAudio \
--nofollow-import-to=PySide6.QtSvgWidgets \
--nofollow-import-to=PySide6.QtSvg \
--nofollow-import-to=PySide6.QtTextToSpeech \
--nofollow-import-to=PySide6.QtHelp \
--nofollow-import-to=PySide6.QtOpenGL \
--nofollow-import-to=PySide6.QtOpenGLWidgets \
--nofollow-import-to=PySide6.QtDBus \
--nofollow-import-to=PySide6.QtSql \
--nofollow-import-to=PySide6.QtXml \
--nofollow-import-to=PySide6.QtConcurrent \
--nofollow-import-to=PySide6.QtHttpServer \
--nofollow-import-to=PySide6.QtStateMachine \
--include-data-dir=core/interface/assets=core/interface/assets \ --include-data-dir=core/interface/assets=core/interface/assets \
--include-data-files=build_info.json=build_info.json \ --include-data-files=build_info.json=build_info.json \
--include-data-files=build_info.json=core/build_info.json \ --include-data-files=build_info.json=core/build_info.json \
@@ -181,19 +250,46 @@ jobs:
--assume-yes-for-downloads \ --assume-yes-for-downloads \
--enable-plugin=pyside6 \ --enable-plugin=pyside6 \
--noinclude-qt-translations \ --noinclude-qt-translations \
--noinclude-dlls='libQt6WebEngine*' \ --nofollow-import-to=PySide6.QtWebEngineWidgets \
--noinclude-dlls='libQt6Multimedia*' \ --nofollow-import-to=PySide6.QtWebEngineCore \
--noinclude-dlls='libQt6Quick*' \ --nofollow-import-to=PySide6.QtWebChannel \
--noinclude-dlls='libQt6Qml*' \ --nofollow-import-to=PySide6.QtMultimedia \
--noinclude-dlls='libQt6Designer*' \ --nofollow-import-to=PySide6.QtMultimediaWidgets \
--noinclude-dlls='libQt63D*' \ --nofollow-import-to=PySide6.QtQuick \
--noinclude-dlls='libQt6Bluetooth*' \ --nofollow-import-to=PySide6.QtQuickWidgets \
--noinclude-dlls='libQt6Nfc*' \ --nofollow-import-to=PySide6.QtQml \
--noinclude-dlls='libQt6Sensors*' \ --nofollow-import-to=PySide6.QtDesigner \
--noinclude-dlls='libQt6Serial*' \ --nofollow-import-to=PySide6.Qt3DCore \
--noinclude-dlls='libQt6Test*' \ --nofollow-import-to=PySide6.Qt3DRender \
--noinclude-dlls='libQt6Location*' \ --nofollow-import-to=PySide6.Qt3DInput \
--noinclude-dlls='libQt6Pdf*' \ --nofollow-import-to=PySide6.QtBluetooth \
--nofollow-import-to=PySide6.QtNfc \
--nofollow-import-to=PySide6.QtSensors \
--nofollow-import-to=PySide6.QtSerialPort \
--nofollow-import-to=PySide6.QtTest \
--nofollow-import-to=PySide6.QtLocation \
--nofollow-import-to=PySide6.QtPdf \
--nofollow-import-to=PySide6.QtPdfWidgets \
--nofollow-import-to=PySide6.QtCharts \
--nofollow-import-to=PySide6.QtDataVisualization \
--nofollow-import-to=PySide6.QtGraphs \
--nofollow-import-to=PySide6.QtNetworkAuth \
--nofollow-import-to=PySide6.QtPositioning \
--nofollow-import-to=PySide6.QtRemoteObjects \
--nofollow-import-to=PySide6.QtScxml \
--nofollow-import-to=PySide6.QtSpatialAudio \
--nofollow-import-to=PySide6.QtSvgWidgets \
--nofollow-import-to=PySide6.QtSvg \
--nofollow-import-to=PySide6.QtTextToSpeech \
--nofollow-import-to=PySide6.QtHelp \
--nofollow-import-to=PySide6.QtOpenGL \
--nofollow-import-to=PySide6.QtOpenGLWidgets \
--nofollow-import-to=PySide6.QtDBus \
--nofollow-import-to=PySide6.QtSql \
--nofollow-import-to=PySide6.QtXml \
--nofollow-import-to=PySide6.QtConcurrent \
--nofollow-import-to=PySide6.QtHttpServer \
--nofollow-import-to=PySide6.QtStateMachine \
--include-data-dir=core/interface/assets=core/interface/assets \ --include-data-dir=core/interface/assets=core/interface/assets \
--include-data-files=build_info.json=build_info.json \ --include-data-files=build_info.json=build_info.json \
--include-data-files=build_info.json=core/build_info.json \ --include-data-files=build_info.json=core/build_info.json \