Made the service-code compile on Mac OS X. Only compile, no testing though

This commit is contained in:
Micke Prag 2009-12-13 20:52:38 +00:00
parent aad7d41f1f
commit 09d8d939d2
7 changed files with 116 additions and 77 deletions

View file

@ -1,19 +1,34 @@
SET( qtservice_MOC_HDRS QT4_GENERATE_MOC( ${CMAKE_HOME_DIRECTORY}/3rdparty/qtservice-2.6-opensource/src/qtservice.cpp ${CMAKE_CURRENT_BINARY_DIR}/qtservice.moc )
${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} )
SET( qtservice_SRCS SET( qtservice_SRCS
${CMAKE_HOME_DIRECTORY}/3rdparty/qtsingleapplication/src/qtsingleapplication.cpp ${CMAKE_HOME_DIRECTORY}/3rdparty/qtservice-2.6-opensource/src/qtservice.cpp
${CMAKE_HOME_DIRECTORY}/3rdparty/qtsingleapplication/src/qtlocalpeer.cpp ${CMAKE_CURRENT_BINARY_DIR}/qtservice.moc
# ${CMAKE_HOME_DIRECTORY}/3rdparty/qtsingleapplication/src/qtlocalserver.cpp
${qtsingleapplication_MOC_SRCS}
) )
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( INCLUDE_DIRECTORIES(
${CMAKE_HOME_DIRECTORY}/3rdparty/qtsingleapplication/src/ ${CMAKE_HOME_DIRECTORY}/3rdparty/qtservice-2.6-opensource/src/
${CMAKE_CURRENT_BINARY_DIR}
) )

View file

@ -43,9 +43,9 @@ SET(GENERATE_MAN FALSE CACHE BOOL "Enable generation of man-files")
ADD_SUBDIRECTORY(driver) ADD_SUBDIRECTORY(driver)
IF(BUILD_LIBTELLDUS-CORE_AS_SERVICE AND WIN32) IF(BUILD_LIBTELLDUS-CORE_AS_SERVICE)
ADD_SUBDIRECTORY(telldus-service) ADD_SUBDIRECTORY(telldus-service)
ENDIF(BUILD_LIBTELLDUS-CORE_AS_SERVICE AND WIN32) ENDIF(BUILD_LIBTELLDUS-CORE_AS_SERVICE)
if(BUILD_TDTOOL) if(BUILD_TDTOOL)
ADD_SUBDIRECTORY(tdtool) ADD_SUBDIRECTORY(tdtool)

View file

@ -112,7 +112,11 @@ ENDIF(USE_QT_SETTINGS_BACKEND)
IF (APPLE) IF (APPLE)
#### Mac OS X #### #### 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 SET( telldus-core_SRCS
${telldus-core_SRCS} ${telldus-core_SRCS}
win/Device.cpp win/Device.cpp

View file

@ -2,13 +2,9 @@ PROJECT( telldus-service )
CMAKE_MINIMUM_REQUIRED( VERSION 2.6.0 ) 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_SERVICE TRUE CACHE BOOL "Build the service")
SET(BUILD_CLIENT FALSE CACHE BOOL "Build the client") SET(BUILD_CLIENT FALSE CACHE BOOL "Build the client")
if(BUILD_SERVICE) if(BUILD_SERVICE)
ADD_SUBDIRECTORY(service) ADD_SUBDIRECTORY(service)
endif(BUILD_SERVICE) endif(BUILD_SERVICE)

View file

@ -14,7 +14,7 @@ SET( telldus-client_SRCS
) )
SET( telldus-client_HDRS SET( telldus-client_HDRS
../common/Message.h ${CMAKE_SOURCE_DIR}/driver/libtelldus-core/telldus-core.h
) )
SET( telldus-client_MOC_HDRS SET( telldus-client_MOC_HDRS
@ -25,6 +25,11 @@ SET( telldus-client_LIBRARIES
${QT_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_WRAP_CPP( telldus-client_MOC_SRCS ${telldus-client_MOC_HDRS} )
QT4_AUTOMOC ( ${telldus-client_SRCS} ) QT4_AUTOMOC ( ${telldus-client_SRCS} )
@ -33,13 +38,12 @@ QT4_AUTOMOC ( ${telldus-client_SRCS} )
######## Platforms-specific, non configurable ######## ######## Platforms-specific, non configurable ########
SET( telldus-client_TARGET TelldusClient ) SET( telldus-client_TARGET TelldusCore )
IF (APPLE) #### Mac OS X #### IF (APPLE) #### Mac OS X ####
ELSEIF (WIN32) #### Windows #### ELSEIF (WIN32) #### Windows ####
#### Windows #### #### Windows ####
SET( telldus-client_TARGET TelldusCore )
SET( telldus-client_SRCS SET( telldus-client_SRCS
${telldus-client_SRCS} ${telldus-client_SRCS}
../../driver/libtelldus-core/libtelldus-core.def ../../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_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} ) TARGET_LINK_LIBRARIES( ${telldus-client_TARGET} ${telldus-client_LIBRARIES} )
SET_TARGET_PROPERTIES(${telldus-service_TARGET} PROPERTIES SET_TARGET_PROPERTIES(${telldus-service_TARGET} PROPERTIES

View file

@ -1,49 +1,49 @@
#include <QLocalSocket> #include <QLocalSocket>
#include "Manager.h" #include "Manager.H"
#include "Message.h" #include "Message.h"
#include <QFile> #include <QFile>
#include <QTime> #include <QTime>
void logMessage( const QString &message) { void logMessage( const QString &message) {
QFile file("C:/log.txt"); QFile file("C:/log.txt");
file.open(QIODevice::Append | QIODevice::Text); file.open(QIODevice::Append | QIODevice::Text);
QTextStream out(&file); QTextStream out(&file);
out << QTime::currentTime().toString() << ": " << message << "\n"; out << QTime::currentTime().toString() << ": " << message << "\n";
file.close(); file.close();
} }
class ManagerPrivate { class ManagerPrivate {
public: public:
int numberOfDevices; int numberOfDevices;
QLocalSocket s, eventSocket; QLocalSocket s, eventSocket;
}; };
Manager *Manager::instance = 0; Manager *Manager::instance = 0;
Manager::Manager(void) { Manager::Manager(void) {
d = new ManagerPrivate; d = new ManagerPrivate;
d->numberOfDevices = -1; d->numberOfDevices = -1;
connect(&d->eventSocket, SIGNAL(readyRead()), this, SLOT(dataReceived())); connect(&d->eventSocket, SIGNAL(readyRead()), this, SLOT(dataReceived()));
d->s.connectToServer( "TelldusCoreClient" ); d->s.connectToServer( "TelldusCoreClient" );
d->eventSocket.connectToServer( "TelldusCoreEvents" ); d->eventSocket.connectToServer( "TelldusCoreEvents" );
d->s.waitForConnected(); d->s.waitForConnected();
} }
Manager::~Manager(void) { Manager::~Manager(void) {
delete d; delete d;
} }
Manager *Manager::getInstance() { Manager *Manager::getInstance() {
if (Manager::instance == 0) { if (Manager::instance == 0) {
Manager::instance = new Manager(); Manager::instance = new Manager();
} }
return Manager::instance; return Manager::instance;
} }
void Manager::close() { void Manager::close() {
if (Manager::instance != 0) { if (Manager::instance != 0) {
delete Manager::instance; delete Manager::instance;
@ -76,11 +76,11 @@ void Manager::dataReceived() {
logMessage("Data-received"); 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))); logMessage(QString("%1:").arg(QString(message)));
if (d->s.state() != QLocalSocket::ConnectedState) { if (d->s.state() != QLocalSocket::ConnectedState) {
logMessage("[default]"); logMessage("[default]");
return default; return defaultValue;
} }
d->s.write(message); d->s.write(message);
if (d->s.waitForReadyRead(5000)) { if (d->s.waitForReadyRead(5000)) {
@ -90,7 +90,7 @@ QVariant Manager::send(const Message &message, const QVariant &default) {
return retval; return retval;
} }
logMessage("[No return]"); logMessage("[No return]");
return default; return defaultValue;
} }

View file

@ -12,7 +12,6 @@ SET( telldus-service_SRCS
TelldusCore.cpp TelldusCore.cpp
Manager.cpp Manager.cpp
../common/Message.cpp ../common/Message.cpp
${QTSERVICE_PATH}/src/qtservice.cpp
) )
SET( telldus-service_MOC_HDRS SET( telldus-service_MOC_HDRS
@ -24,24 +23,25 @@ SET( telldus-service_LIBRARIES
${QT_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 ######## ######## Platforms-specific, non configurable ########
SET( telldus-service_TARGET TelldusService ) SET( telldus-service_TARGET TelldusService )
IF (APPLE) #### Mac OS X #### IF (APPLE) #### Mac OS X ####
SET( telldus-service_LIBRARIES
${telldus-service_LIBRARIES}
TelldusCoreLib
)
ELSEIF (WIN32) #### Windows #### ELSEIF (WIN32) #### Windows ####
ADD_DEFINITIONS( -DUNICODE ) 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 SET(CMAKE_EXE_LINKER_FLAGS
"${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:CONSOLE" "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:CONSOLE"
) )
@ -61,13 +61,18 @@ ELSE (APPLE) #### Linux ####
ENDIF (APPLE) ENDIF (APPLE)
######## QtService ########
INCLUDE( ../../3rdparty/qtservice.cmake NO_POLICY_SCOPE )
SET( telldus-service_SRCS
${telldus-service_SRCS}
${qtservice_SRCS}
)
######## Configuring ######## ######## 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} ) QT4_WRAP_CPP( telldus-service_MOC_SRCS ${telldus-service_MOC_HDRS} )
ADD_EXECUTABLE(${telldus-service_TARGET} ADD_EXECUTABLE(${telldus-service_TARGET}
${telldus-service_SRCS} ${telldus-service_SRCS}
${telldus-service_MOC_SRCS} ${telldus-service_MOC_SRCS}