start work on porting

This commit is contained in:
arcan1s 2015-01-15 18:46:56 +03:00
parent 7415a6830f
commit adcf6c942f
5 changed files with 84 additions and 43 deletions

View File

@ -21,11 +21,15 @@ message (STATUS "Project: ${PROJECT_NAME}")
message (STATUS "Version: ${PROJECT_VERSION}") message (STATUS "Version: ${PROJECT_VERSION}")
message (STATUS "Build date: ${CURRENT_DATE}") message (STATUS "Build date: ${CURRENT_DATE}")
option (BUILD_KDE4 "Build on KDE4" OFF)
# flags # flags
if (CMAKE_COMPILER_IS_GNUCXX) if (CMAKE_COMPILER_IS_GNUCXX)
set (CMAKE_CXX_FLAGS "-Wall -Wno-cpp -std=c++11") set (CMAKE_CXX_FLAGS "-Wall -Wno-cpp -std=c++11")
set (CMAKE_CXX_FLAGS_DEBUG "-g -O0") set (CMAKE_CXX_FLAGS_DEBUG "-g -O0")
set (CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG") set (CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")
# avoid newer gcc warnings
add_definitions (-D_DEFAULT_SOURCE)
else () else ()
message (STATUS "Unknown compiler") message (STATUS "Unknown compiler")
endif () endif ()

View File

@ -4,16 +4,38 @@ set (PLUGIN_NAME ${SUBPROJECT})
message (STATUS "Subproject ${SUBPROJECT}") message (STATUS "Subproject ${SUBPROJECT}")
# find required libaries # find required libaries
if (BUILD_KDE4)
find_package (KDE4 REQUIRED) find_package (KDE4 REQUIRED)
include (KDE4Defaults) include (KDE4Defaults)
add_definitions (${QT_DEFINITIONS} ${KDE4_DEFINITIONS}) add_definitions (${QT_DEFINITIONS} ${KDE4_DEFINITIONS})
set (KDE_INCLUDE ${KDE4_INCLUDES})
else ()
find_package (Qt5 REQUIRED COMPONENTS Widgets)
find_package (ECM 0.0.11 REQUIRED NO_MODULE)
set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})
find_package(KF5 REQUIRED COMPONENTS Plasma Service)
include (KDEInstallDirs)
include (KDECMakeSettings)
include (KDECompilerSettings)
add_definitions (${Qt5Core_DEFINITIONS} ${Qt5Widgets_DEFINITIONS})
set (Qt_INCLUDE ${Qt5Core_INCLUDE_DIRS}
${Qt5Widgets_INCLUDE_DIRS})
set (KDE_INCLUDE ${ConfigCore_INCLUDE_DIR}
${CoreAddons_INCLUDE_DIR}
${Plasma_INCLUDE_DIR}
${Service_INCLUDE_DIR})
endif ()
include_directories (${CMAKE_SOURCE_DIR} include_directories (${CMAKE_SOURCE_DIR}
${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}
${KDE4_INCLUDES}
${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_BINARY_DIR}/../ ${CMAKE_CURRENT_BINARY_DIR}/../
${PROJECT_TRDPARTY_DIR}) ${PROJECT_TRDPARTY_DIR}
${Qt_INCLUDE}
${KDE_INCLUDE})
file (GLOB SUBPROJECT_DESKTOP_IN *.desktop) file (GLOB SUBPROJECT_DESKTOP_IN *.desktop)
file (RELATIVE_PATH SUBPROJECT_DESKTOP ${CMAKE_SOURCE_DIR} ${SUBPROJECT_DESKTOP_IN}) file (RELATIVE_PATH SUBPROJECT_DESKTOP ${CMAKE_SOURCE_DIR} ${SUBPROJECT_DESKTOP_IN})
@ -27,13 +49,25 @@ set (SUBPROJECT_SCRIPTS ${CMAKE_CURRENT_SOURCE_DIR}/scripts)
configure_file (${SUBPROJECT_DESKTOP_IN} ${CMAKE_CURRENT_BINARY_DIR}/${SUBPROJECT_DESKTOP}) configure_file (${SUBPROJECT_DESKTOP_IN} ${CMAKE_CURRENT_BINARY_DIR}/${SUBPROJECT_DESKTOP})
# make # make
if (BUILD_KDE4)
qt4_wrap_cpp (TASK_MOC_SOURCE ${TASK_HEADER}) qt4_wrap_cpp (TASK_MOC_SOURCE ${TASK_HEADER})
kde4_add_ui_files (SUBPROJECT_SOURCE ${SUBPROJECT_UI}) kde4_add_ui_files (SUBPROJECT_SOURCE ${SUBPROJECT_UI})
kde4_add_plugin (${PLUGIN_NAME} ${SUBPROJECT_SOURCE} ${TASK_MOC_SOURCE}) kde4_add_plugin (${PLUGIN_NAME} ${SUBPROJECT_SOURCE} ${TASK_MOC_SOURCE})
target_link_libraries (${PLUGIN_NAME} ${KDE4_KDECORE_LIBS} ${KDE4_PLASMA_LIBS}) target_link_libraries (${PLUGIN_NAME} ${KDE4_KDECORE_LIBS} ${KDE4_PLASMA_LIBS})
else ()
qt5_wrap_cpp (TASK_MOC_SOURCE ${TASK_HEADER})
qt5_wrap_ui (SUBPROJECT_UI_HEADER ${SUBPROJECT_UI})
add_library (${PLUGIN_NAME} MODULE ${SUBPROJECT_SOURCE} ${SUBPROJECT_UI_HEADER} ${TASK_MOC_SOURCE})
target_link_libraries (${PLUGIN_NAME} ${Plasma_LIBRARIES} ${Qt5Widgets_LIBRARIES})
kcoreaddons_desktop_to_json (${PLUGIN_NAME} ${CMAKE_CURRENT_BINARY_DIR}/${SUBPROJECT_DESKTOP})
endif ()
# install # install
if (BUILD_KDE4)
install (TARGETS ${PLUGIN_NAME} DESTINATION ${PLUGIN_INSTALL_DIR}) install (TARGETS ${PLUGIN_NAME} DESTINATION ${PLUGIN_INSTALL_DIR})
else ()
install (TARGETS ${PLUGIN_NAME} DESTINATION ${PLUGIN_INSTALL_DIR}/plasma/dataengine)
endif ()
install (FILES ${CMAKE_CURRENT_BINARY_DIR}/${SUBPROJECT_DESKTOP} DESTINATION ${SERVICES_INSTALL_DIR}) install (FILES ${CMAKE_CURRENT_BINARY_DIR}/${SUBPROJECT_DESKTOP} DESTINATION ${SERVICES_INSTALL_DIR})
install (FILES ${SUBPROJECT_CONF} DESTINATION ${CONFIG_INSTALL_DIR}) install (FILES ${SUBPROJECT_CONF} DESTINATION ${CONFIG_INSTALL_DIR})
install (DIRECTORY ${SUBPROJECT_SCRIPTS} DESTINATION ${DATA_INSTALL_DIR}/${PLUGIN_NAME} USE_SOURCE_PERMISSIONS) install (DIRECTORY ${SUBPROJECT_SCRIPTS} DESTINATION ${DATA_INSTALL_DIR}/${PLUGIN_NAME})

View File

@ -19,20 +19,27 @@
#include "extsysmon.h" #include "extsysmon.h"
#include <Plasma/DataContainer> #include <Plasma/DataContainer>
#include <KDE/KGlobal> #include <KWindowSystem>
#include <KDE/KStandardDirs>
#include <KDE/KWindowSystem>
#include <QDebug> #include <QDebug>
#include <QDir> #include <QDir>
#include <QFile> #include <QFile>
#include <QProcessEnvironment> #include <QProcessEnvironment>
#include <QRegExp> #include <QRegExp>
#include <QTextCodec> #include <QTextCodec>
#include <QThread>
#include <extscript.h> #include <extscript.h>
#include <pdebug/pdebug.h> #include <pdebug/pdebug.h>
#include <task/taskadds.h> #include <task/taskadds.h>
#include <version.h>
// KF5-KDE4 compability
#ifdef BUILD_KDE4
#include <KGlobal>
#include <KStandardDirs>
#else
#include <QStandardPaths>
#endif /* BUILD_KDE4 */
ExtendedSysMon::ExtendedSysMon(QObject* parent, const QVariantList& args) ExtendedSysMon::ExtendedSysMon(QObject* parent, const QVariantList& args)
@ -174,7 +181,7 @@ void ExtendedSysMon::readConfiguration()
rawConfig[QString("PKGNULL")] = QString("0"); rawConfig[QString("PKGNULL")] = QString("0");
rawConfig[QString("PLAYER")] = QString("mpris"); rawConfig[QString("PLAYER")] = QString("mpris");
QString fileName = KGlobal::dirs()->findResource("config", "extsysmon.conf"); QString fileName = KGlobal::dirs()->findResource("config", "plasma-dataengine-extsysmon.conf");
if (debug) qDebug() << PDEBUG << ":" << "Configuration file" << fileName; if (debug) qDebug() << PDEBUG << ":" << "Configuration file" << fileName;
QFile configFile(fileName); QFile configFile(fileName);
if (!configFile.open(QIODevice::ReadOnly)) { if (!configFile.open(QIODevice::ReadOnly)) {
@ -611,6 +618,10 @@ bool ExtendedSysMon::updateSourceEvent(const QString &source)
} }
#ifdef BUILD_KDE4
K_EXPORT_PLASMA_DATAENGINE(extsysmon, ExtendedSysMon) K_EXPORT_PLASMA_DATAENGINE(extsysmon, ExtendedSysMon)
#else
K_EXPORT_PLASMA_DATAENGINE_WITH_JSON(extsysmon, ExtendedSysMon, "plasma-dataengine-extsysmon.json")
#endif /* BUILD_KDE4 */
#include "extsysmon.moc" #include "extsysmon.moc"

View File

@ -1,24 +1,16 @@
# Configuration file for Extended Systemmonitor DataEngine [Configuration]
# $kdehome/share/config/extsysmon.conf
# ACPI devices # ACPI devices
#ACPIPATH=/sys/class/power_supply/ ACPIPATH=/sys/class/power_supply/
# Set GPU device
# May be 'nvidia' (for nvidia), 'ati' (for ATI RADEON), 'disable' or 'auto' # May be 'nvidia' (for nvidia), 'ati' (for ATI RADEON), 'disable' or 'auto'
#GPUDEV=auto GPUDEV=auto
# Set block device for hddtemp comma separated or use 'all' or 'disable' # Set block device for hddtemp comma separated or use 'all' or 'disable'
#HDDDEV=all HDDDEV=all
# mpd server settings
# Set MPD settings MPDADDRESS=localhost
#MPDADDRESS=localhost MPDPORT=6600
#MPDPORT=6600
# MPRIS player name or 'auto'. In the most cases it should be a player name # MPRIS player name or 'auto'. In the most cases it should be a player name
# DBus path is org.mpris.MediaPlayer2.amarok ## DBus path is org.mpris.MediaPlayer2.amarok
#MPRIS=auto MPRIS=auto
# Package upgrade info # Package upgrade info
## from vicious ## from vicious
## Arch: PKGCMD=pacman -Qu PKGNULL=0 ## Arch: PKGCMD=pacman -Qu PKGNULL=0
@ -27,10 +19,9 @@
## Fedora: PKGCMD=yum list updates PKGNULL=3 ## Fedora: PKGCMD=yum list updates PKGNULL=3
## FreeBSD: PKGCMD=pkg_version -I -l '<' PKGNULL=0 ## FreeBSD: PKGCMD=pkg_version -I -l '<' PKGNULL=0
## Mandriva: PKGCMD=urpmq --auto-select PKGNULL=0 ## Mandriva: PKGCMD=urpmq --auto-select PKGNULL=0
# Commands to run, comma separated ## Commands to run, comma separated
#PKGCMD=pacman -Qu PKGCMD=pacman -Qu
# Number of null lines for commands, comma separated ## Number of null lines for commands, comma separated
#PKGNULL=0 PKGNULL=0
# Player name. Supported players are 'mpd', 'mpris' # Player name. Supported players are 'mpd', 'mpris'
#PLAYER=mpris PLAYER=mpris

View File

@ -26,5 +26,6 @@
// cmake properties // cmake properties
#define CMAKE_BUILD_TYPE "@CMAKE_BUILD_TYPE@" #define CMAKE_BUILD_TYPE "@CMAKE_BUILD_TYPE@"
#define CMAKE_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@" #define CMAKE_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@"
#cmakedefine BUILD_KDE4
#endif /* VERSION_H */ #endif /* VERSION_H */