Amarok/Development/KF5port
This page is meant as a guide to port Amarok to Qt5/Frameworks5 and Plasma5.
Stages of port
The broad plan involves the porting of the code-base to compile by using KF5::KDELibs4Support. After this the plan involves porting Amarok away from KF5::KDELibs4Support. We are still in the first part now i.e the current aim is to let Amarok compile by using KF5::KDELibs4Support(with LOTS and LOTS of depreciated warnings).
- Restoring build on Qt5/KF5: Port of cmake files and all code, so everything builds at least again by using KF5::KDELibs4Support. In this part the primary focus is on building it back again. INCOMPLETE
- All tests should pass after the above has been done. TODO
- Porting away from KF5::KDELibs4Support. TODO
General
The commits containing the ongoing port of Amarok to Qt5/KF5 are made to the kf5 branch.
Todo overview
- The inclusions of header should be reorganize to follow the rule <QXxxx>, then <KXxxx>, then "Xxxx.h" and follow the alphabetical order.
- While porting some KUrl to QUrl, some methods were
method(KUrl)
and used asmethod(myString)
withmyString
being aQString
. It doesn't work anymore: now the method is used asmethod( QUrl(myString) )
which is not so nice, although it compiles.
General
There have been some changes like inclusion of headers, conversion from QString to QUrl (by using QUrl::fromUserInput or QUrl::fromLocalFile), conversion from "signals" to "Q_SIGNALS", changing of style of the cmake files, that haven't been mentioned explicitly for the different files.
Status
The current status of the port of the individual methods can be found here: Status page
New Dependencies
If you would like to build it then you have to install the following development packages (apart from the existing dependencies like Taglib, zlib, googlemock, etc ) containing the following components for your respective system :
Dependency | Version |
---|---|
Extra CMake Modules (ECM) | 1.7.0 |
Qt5::Core | |
Qt5::DBus | |
Qt5::Widgets | |
Qt5::Test | |
Qt5::Gui | |
Qt5::Svg | |
Qt5::Xml | |
Qt5::Script | |
Qt5::Sql | |
Qt5::Quick | |
Qt5::Qml | |
Qt5::ScriptTools | |
Qt5::WebKitWidgets | |
Qca-Qt5 | |
Phonon4Qt5 | |
KF5::CoreAddons | |
KF5::Solid | |
KF5::Codecs | |
KF5::I18n | |
KF5::ThreadWeaver | |
KF5::KDELibs4Support | |
KF5::Codecs | |
KF5::I18n | |
KF5::ThreadWeaver | |
KF5::Plasma | |
KF5::PlasmaQuick | |
KF5::KCMUtils | |
KF5::NewStuff | |
KF5::TextEditor | |
KF5::GlobalAccel | |
KF5::KIO | |
KF5::NotifyConfig | |
KF5::Archive | |
KF5::DNSSD |
This list has been kept dynamic to avoid pulling unwanted dependencies which means more components will be added when the need arises.
Extra
Some references: