From 09d8d939d2941c5e9bc7a02db7ac5a641cfee4b1 Mon Sep 17 00:00:00 2001 From: Micke Prag Date: Sun, 13 Dec 2009 20:52:38 +0000 Subject: [PATCH] Made the service-code compile on Mac OS X. Only compile, no testing though --- telldus-core/3rdparty/qtservice.cmake | 39 ++++++--- telldus-core/CMakeLists.txt | 4 +- .../driver/libtelldus-core/CMakeLists.txt | 6 +- telldus-core/telldus-service/CMakeLists.txt | 4 - .../telldus-service/client/CMakeLists.txt | 25 +++++- .../telldus-service/client/Manager.cpp | 86 +++++++++---------- .../telldus-service/service/CMakeLists.txt | 29 ++++--- 7 files changed, 116 insertions(+), 77 deletions(-) diff --git a/telldus-core/3rdparty/qtservice.cmake b/telldus-core/3rdparty/qtservice.cmake index 87bdd610..abc5250b 100644 --- a/telldus-core/3rdparty/qtservice.cmake +++ b/telldus-core/3rdparty/qtservice.cmake @@ -1,19 +1,34 @@ -SET( qtservice_MOC_HDRS - ${CMAKE_HOME_DIRECTORY}/3rdparty/qtsingleapplication/src/qtsingleapplication.h - ${CMAKE_HOME_DIRECTORY}/3rdparty/qtsingleapplication/src/qtlocalpeer.h -) - -QT4_WRAP_CPP( qtservice_MOC_SRCS ${qtservice_MOC_HDRS} ) -QT4_AUTOMOC ( ${qtservice_SRCS} ) +QT4_GENERATE_MOC( ${CMAKE_HOME_DIRECTORY}/3rdparty/qtservice-2.6-opensource/src/qtservice.cpp ${CMAKE_CURRENT_BINARY_DIR}/qtservice.moc ) SET( qtservice_SRCS - ${CMAKE_HOME_DIRECTORY}/3rdparty/qtsingleapplication/src/qtsingleapplication.cpp - ${CMAKE_HOME_DIRECTORY}/3rdparty/qtsingleapplication/src/qtlocalpeer.cpp -# ${CMAKE_HOME_DIRECTORY}/3rdparty/qtsingleapplication/src/qtlocalserver.cpp - ${qtsingleapplication_MOC_SRCS} + ${CMAKE_HOME_DIRECTORY}/3rdparty/qtservice-2.6-opensource/src/qtservice.cpp + ${CMAKE_CURRENT_BINARY_DIR}/qtservice.moc ) +IF (UNIX) + QT4_GENERATE_MOC( ${CMAKE_HOME_DIRECTORY}/3rdparty/qtservice-2.6-opensource/src/qtservice_unix.cpp ${CMAKE_CURRENT_BINARY_DIR}/qtservice_unix.moc ) + + SET( qtservice_MOC_HDRS + ${CMAKE_HOME_DIRECTORY}/3rdparty/qtservice-2.6-opensource/src/qtunixsocket.h + ${CMAKE_HOME_DIRECTORY}/3rdparty/qtservice-2.6-opensource/src/qtunixserversocket.h + ) + + QT4_WRAP_CPP( qtservice_MOC_SRCS ${qtservice_MOC_HDRS} ) + + SET( qtservice_SRCS + ${qtservice_SRCS} + ${CMAKE_HOME_DIRECTORY}/3rdparty/qtservice-2.6-opensource/src/qtservice_unix.cpp + ${CMAKE_HOME_DIRECTORY}/3rdparty/qtservice-2.6-opensource/src/qtunixsocket.cpp + ${CMAKE_HOME_DIRECTORY}/3rdparty/qtservice-2.6-opensource/src/qtunixserversocket.cpp + ${CMAKE_CURRENT_BINARY_DIR}/qtservice_unix.moc + ${qtservice_MOC_SRCS} + ) + + +ENDIF (UNIX) + INCLUDE_DIRECTORIES( - ${CMAKE_HOME_DIRECTORY}/3rdparty/qtsingleapplication/src/ + ${CMAKE_HOME_DIRECTORY}/3rdparty/qtservice-2.6-opensource/src/ + ${CMAKE_CURRENT_BINARY_DIR} ) diff --git a/telldus-core/CMakeLists.txt b/telldus-core/CMakeLists.txt index cc3e0efb..bc228127 100644 --- a/telldus-core/CMakeLists.txt +++ b/telldus-core/CMakeLists.txt @@ -43,9 +43,9 @@ SET(GENERATE_MAN FALSE CACHE BOOL "Enable generation of man-files") ADD_SUBDIRECTORY(driver) -IF(BUILD_LIBTELLDUS-CORE_AS_SERVICE AND WIN32) +IF(BUILD_LIBTELLDUS-CORE_AS_SERVICE) ADD_SUBDIRECTORY(telldus-service) -ENDIF(BUILD_LIBTELLDUS-CORE_AS_SERVICE AND WIN32) +ENDIF(BUILD_LIBTELLDUS-CORE_AS_SERVICE) if(BUILD_TDTOOL) ADD_SUBDIRECTORY(tdtool) diff --git a/telldus-core/driver/libtelldus-core/CMakeLists.txt b/telldus-core/driver/libtelldus-core/CMakeLists.txt index b251553d..d729b9f7 100644 --- a/telldus-core/driver/libtelldus-core/CMakeLists.txt +++ b/telldus-core/driver/libtelldus-core/CMakeLists.txt @@ -112,7 +112,11 @@ ENDIF(USE_QT_SETTINGS_BACKEND) IF (APPLE) #### Mac OS X #### - SET( telldus-core_TARGET TelldusCore ) + IF(BUILD_LIBTELLDUS-CORE_AS_SERVICE) + SET( telldus-core_TARGET TelldusCoreLib ) + ELSE(BUILD_LIBTELLDUS-CORE_AS_SERVICE) + SET( telldus-core_TARGET TelldusCore ) + ENDIF(BUILD_LIBTELLDUS-CORE_AS_SERVICE) SET( telldus-core_SRCS ${telldus-core_SRCS} win/Device.cpp diff --git a/telldus-core/telldus-service/CMakeLists.txt b/telldus-core/telldus-service/CMakeLists.txt index 6c618c9e..37ae61e2 100644 --- a/telldus-core/telldus-service/CMakeLists.txt +++ b/telldus-core/telldus-service/CMakeLists.txt @@ -2,13 +2,9 @@ PROJECT( telldus-service ) CMAKE_MINIMUM_REQUIRED( VERSION 2.6.0 ) -SET(PACKAGE_VERSION 2.99.0) -SET(PACKAGE_SOVERSION 2) - SET(BUILD_SERVICE TRUE CACHE BOOL "Build the service") SET(BUILD_CLIENT FALSE CACHE BOOL "Build the client") - if(BUILD_SERVICE) ADD_SUBDIRECTORY(service) endif(BUILD_SERVICE) diff --git a/telldus-core/telldus-service/client/CMakeLists.txt b/telldus-core/telldus-service/client/CMakeLists.txt index 9aac2b5f..14dd8cae 100644 --- a/telldus-core/telldus-service/client/CMakeLists.txt +++ b/telldus-core/telldus-service/client/CMakeLists.txt @@ -14,7 +14,7 @@ SET( telldus-client_SRCS ) SET( telldus-client_HDRS - ../common/Message.h + ${CMAKE_SOURCE_DIR}/driver/libtelldus-core/telldus-core.h ) SET( telldus-client_MOC_HDRS @@ -25,6 +25,11 @@ SET( telldus-client_LIBRARIES ${QT_LIBRARIES} ) +INCLUDE_DIRECTORIES( + ${CMAKE_SOURCE_DIR}/driver + ${CMAKE_CURRENT_SOURCE_DIR}/../common +) + QT4_WRAP_CPP( telldus-client_MOC_SRCS ${telldus-client_MOC_HDRS} ) QT4_AUTOMOC ( ${telldus-client_SRCS} ) @@ -33,13 +38,12 @@ QT4_AUTOMOC ( ${telldus-client_SRCS} ) ######## Platforms-specific, non configurable ######## -SET( telldus-client_TARGET TelldusClient ) +SET( telldus-client_TARGET TelldusCore ) IF (APPLE) #### Mac OS X #### ELSEIF (WIN32) #### Windows #### #### Windows #### - SET( telldus-client_TARGET TelldusCore ) SET( telldus-client_SRCS ${telldus-client_SRCS} ../../driver/libtelldus-core/libtelldus-core.def @@ -73,6 +77,21 @@ ADD_LIBRARY(${telldus-client_TARGET} SHARED ) SET_SOURCE_FILES_PROPERTIES(${telldus-service_RESOURCES} PROPERTIES MACOSX_PACKAGE_LOCATION Resources) +SET_PROPERTY(TARGET ${telldus-client_TARGET} + PROPERTY FRAMEWORK TRUE +) +SET_PROPERTY(TARGET ${telldus-client_TARGET} + PROPERTY PUBLIC_HEADER ${telldus-client_HDRS} +) + +SET_PROPERTY(TARGET ${telldus-client_TARGET} + PROPERTY VERSION ${PACKAGE_VERSION} +) +SET_PROPERTY(TARGET ${telldus-client_TARGET} + PROPERTY SOVERSION ${PACKAGE_SOVERSION} +) + + TARGET_LINK_LIBRARIES( ${telldus-client_TARGET} ${telldus-client_LIBRARIES} ) SET_TARGET_PROPERTIES(${telldus-service_TARGET} PROPERTIES diff --git a/telldus-core/telldus-service/client/Manager.cpp b/telldus-core/telldus-service/client/Manager.cpp index e41128ea..67dabcb8 100644 --- a/telldus-core/telldus-service/client/Manager.cpp +++ b/telldus-core/telldus-service/client/Manager.cpp @@ -1,49 +1,49 @@ - -#include -#include "Manager.h" -#include "Message.h" - -#include -#include -void logMessage( const QString &message) { - QFile file("C:/log.txt"); - file.open(QIODevice::Append | QIODevice::Text); - QTextStream out(&file); - out << QTime::currentTime().toString() << ": " << message << "\n"; - file.close(); -} - -class ManagerPrivate { -public: - int numberOfDevices; - QLocalSocket s, eventSocket; -}; - -Manager *Manager::instance = 0; - -Manager::Manager(void) { - d = new ManagerPrivate; - d->numberOfDevices = -1; - connect(&d->eventSocket, SIGNAL(readyRead()), this, SLOT(dataReceived())); - - d->s.connectToServer( "TelldusCoreClient" ); - d->eventSocket.connectToServer( "TelldusCoreEvents" ); - - d->s.waitForConnected(); -} - -Manager::~Manager(void) { - delete d; -} - + +#include +#include "Manager.H" +#include "Message.h" + +#include +#include +void logMessage( const QString &message) { + QFile file("C:/log.txt"); + file.open(QIODevice::Append | QIODevice::Text); + QTextStream out(&file); + out << QTime::currentTime().toString() << ": " << message << "\n"; + file.close(); +} + +class ManagerPrivate { +public: + int numberOfDevices; + QLocalSocket s, eventSocket; +}; + +Manager *Manager::instance = 0; + +Manager::Manager(void) { + d = new ManagerPrivate; + d->numberOfDevices = -1; + connect(&d->eventSocket, SIGNAL(readyRead()), this, SLOT(dataReceived())); + + d->s.connectToServer( "TelldusCoreClient" ); + d->eventSocket.connectToServer( "TelldusCoreEvents" ); + + d->s.waitForConnected(); +} + +Manager::~Manager(void) { + delete d; +} + Manager *Manager::getInstance() { if (Manager::instance == 0) { Manager::instance = new Manager(); } return Manager::instance; } - - + + void Manager::close() { if (Manager::instance != 0) { delete Manager::instance; @@ -76,11 +76,11 @@ void Manager::dataReceived() { logMessage("Data-received"); } -QVariant Manager::send(const Message &message, const QVariant &default) { +QVariant Manager::send(const Message &message, const QVariant &defaultValue) { logMessage(QString("%1:").arg(QString(message))); if (d->s.state() != QLocalSocket::ConnectedState) { logMessage("[default]"); - return default; + return defaultValue; } d->s.write(message); if (d->s.waitForReadyRead(5000)) { @@ -90,7 +90,7 @@ QVariant Manager::send(const Message &message, const QVariant &default) { return retval; } logMessage("[No return]"); - return default; + return defaultValue; } diff --git a/telldus-core/telldus-service/service/CMakeLists.txt b/telldus-core/telldus-service/service/CMakeLists.txt index ec55010e..d4c75b9b 100644 --- a/telldus-core/telldus-service/service/CMakeLists.txt +++ b/telldus-core/telldus-service/service/CMakeLists.txt @@ -12,7 +12,6 @@ SET( telldus-service_SRCS TelldusCore.cpp Manager.cpp ../common/Message.cpp - ${QTSERVICE_PATH}/src/qtservice.cpp ) SET( telldus-service_MOC_HDRS @@ -24,24 +23,25 @@ SET( telldus-service_LIBRARIES ${QT_LIBRARIES} ) -######## Configurable options for the platform ######## +INCLUDE_DIRECTORIES( + ${CMAKE_SOURCE_DIR}/driver + ${CMAKE_CURRENT_SOURCE_DIR}/../common +) -SET(QTSERVICE_PATH CACHE PATH "Path to qtservice") + +######## Configurable options for the platform ######## ######## Platforms-specific, non configurable ######## SET( telldus-service_TARGET TelldusService ) IF (APPLE) #### Mac OS X #### - + SET( telldus-service_LIBRARIES + ${telldus-service_LIBRARIES} + TelldusCoreLib + ) ELSEIF (WIN32) #### Windows #### ADD_DEFINITIONS( -DUNICODE ) - INCLUDE_DIRECTORIES( - ${CMAKE_SOURCE_DIR}/driver - ${CMAKE_CURRENT_SOURCE_DIR}/../common - ${QTSERVICE_PATH}/src - ${CMAKE_CURRENT_BINARY_DIR} - ) SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:CONSOLE" ) @@ -61,13 +61,18 @@ ELSE (APPLE) #### Linux #### ENDIF (APPLE) +######## QtService ######## + +INCLUDE( ../../3rdparty/qtservice.cmake NO_POLICY_SCOPE ) +SET( telldus-service_SRCS + ${telldus-service_SRCS} + ${qtservice_SRCS} +) ######## Configuring ######## -QT4_GENERATE_MOC( ${QTSERVICE_PATH}/src/qtservice.cpp ${CMAKE_CURRENT_BINARY_DIR}/qtservice.moc ) QT4_WRAP_CPP( telldus-service_MOC_SRCS ${telldus-service_MOC_HDRS} ) - ADD_EXECUTABLE(${telldus-service_TARGET} ${telldus-service_SRCS} ${telldus-service_MOC_SRCS}