Migrate to Qt6, Cmake & GitHub workflows#199
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Migrate to Qt6 and CMake
Overview
This PR migrates APK Studio from Qt5 to Qt6 and from qmake to CMake build system. The project now uses modern build tooling and is compatible with the latest Qt framework.
Major Changes
Build System Migration
CMakeLists.txtwith proper Qt6 configurationapkstudio.proand all qmake-related build scriptsQt5 → Qt6 Migration
QRegExpwithQRegularExpressionQString::SkipEmptyParts→Qt::SkipEmptyPartsQFontMetrics::width()→horizontalAdvance()QTextEdit::setTabStopWidth()→setTabStopDistance()QTextStream::setCodec()withsetEncoding()for Qt6QWheelEvent::delta()→angleDelta()QMouseEventconstructors for Qt6 compatibilityQPixmappointer access issuesQTextCodecusage (removed in Qt6)qRegisterMetaTypecalls for Qt6Dependencies
document()→hexDocument(),fromFiletemplate changes)CI/CD Modernization
.travis.yml(Travis CI).appveyor.yml(AppVeyor)build/linux.sh,build/osx.sh,build/windows.bat.github/workflows/build.yml):windeployqtlinuxdeployqtmacdeployqtFiles Changed
Added
CMakeLists.txt- Main CMake build configuration.github/workflows/build.yml- GitHub Actions CI/CD workflowModified
sources/processutils.cpp- Removed QTextCodec, fixed SkipEmptyParts, updated qRegisterMetaTypesources/themedsyntaxhighlighter.cpp- Fixed SkipEmptyParts enumsources/findreplacedialog.cpp- Replaced QRegExp with QRegularExpressionsources/mainwindow.cpp- Updated setTabStopWidth to setTabStopDistance, fontMetrics width to horizontalAdvancesources/sourcecodeedit.cpp- Updated fontMetrics width to horizontalAdvance, setCodec to setEncoding, QWheelEvent::delta to angleDelta, QMouseEvent constructorsources/hexedit.cpp- Updated QHexView API calls for v5.0.1sources/hexedit.h- Updated include path for QHexView v5.0.1sources/imageviewerwidget.cpp- Fixed QPixmap pointer accessRemoved
apkstudio.pro- qmake project filebuild/linux.sh- qmake build scriptbuild/osx.sh- qmake build scriptbuild/windows.bat- qmake build script.travis.yml- Travis CI configuration.appveyor.yml- AppVeyor configurationUpdated Submodules
QHexView- Updated to v5.0.1 (Qt6 compatible)Testing
Breaking Changes
Migration Notes
Benefits