added install targets, continued refactoring, added posibility to change notification backend

This commit is contained in:
Patrick von Reth 2010-07-16 10:37:29 +02:00
parent e0a6355aa4
commit 9cd7ad39bd
24 changed files with 136 additions and 62 deletions

View File

@ -39,7 +39,7 @@ if (CMAKE_COMPILER_IS_GNUCXX)
endif(CMAKE_COMPILER_IS_GNUCXX) endif(CMAKE_COMPILER_IS_GNUCXX)
option(WITH_WEBINTERFACE "Buld with WebInterface" OFF) option(WITH_WEBINTERFACE "Buld with WebInterface" OFF)
add_subdirectory(src) add_subdirectory(src)

View File

@ -5,9 +5,14 @@ include_directories(
add_subdirectory(core) add_subdirectory(core)
add_executable ( SnoreNotify main.cpp ) add_executable ( snorenotify main.cpp )
target_link_libraries ( SnoreNotify snorecore ${QT_QTGUI_LIBRARY}) target_link_libraries ( snorenotify snorecore ${QT_QTGUI_LIBRARY})
add_dependencies(SnoreNotify snorecore) add_dependencies(snorenotify snorecore)
install(TARGETS snorenotify RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
add_subdirectory(webinterface) add_subdirectory(webinterface)
add_subdirectory(plugins) add_subdirectory(plugins)

View File

@ -16,9 +16,14 @@ set ( SnoreNotify_HDR
) )
automoc4_add_library( snorecore SHARED ${SnoreNotify_SRCS}) automoc4_add_library( snorecore SHARED ${SnoreNotify_SRCS})
set_target_properties( snorecore PROPERTIES COMPILE_FLAGS "-DSNORECORE_DLL" ) set_target_properties( snorecore PROPERTIES OUTPUT_NAME "snore" COMPILE_FLAGS "-DSNORECORE_DLL" )
target_link_libraries ( snorecore ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} ) target_link_libraries ( snorecore ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} )
install(TARGETS snorecore RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
install(FILES ${SnoreNotify_HDR} DESTINATION include/snore) install(FILES ${SnoreNotify_HDR} DESTINATION include/snore)

View File

@ -17,19 +17,33 @@
#include "application.h" #include "application.h"
Application::Application(const QString &name):name(name){} Application::Application(const QString &name):name(name)
{}
Application::Application():name("Error: Uninitialized Application"){} Application::Application():name("Error: Uninitialized Application")
{}
void Application::addAlert(const QString &alert,const QString &title){ void Application::addAlert(const QString &alert,const QString &title)
{
alerts.insert(alert,QSharedPointer<Alert>(new Alert(alert,title))); alerts.insert(alert,QSharedPointer<Alert>(new Alert(alert,title)));
} }
Alert::Alert(const QString &name,const QString &title):name(name),title(title),active(true){} Alert::Alert(const QString &name,const QString &title):
Alert::Alert(const QString &name,const QString &title,bool active):name(name),title(title),active(active){} name(name),
title(title),
active(true)
{}
Alert::Alert():active(false){} Alert::Alert(const QString &name,const QString &title,bool active):
name(name),
title(title),
active(active)
{}
Alert::Alert():
active(false)
{}

View File

@ -30,7 +30,6 @@ class SNORE_EXPORT Notification:public QObject
{ {
Q_OBJECT Q_OBJECT
friend class SnoreServer; friend class SnoreServer;
friend class Notification_Frontend;
public: public:
static int DefaultTimeout; static int DefaultTimeout;
static QString toPlainText(const QString &string); static QString toPlainText(const QString &string);

View File

@ -23,7 +23,7 @@
QString const SnoreServer::snoreTMP=QDir::temp().path()+"/SnoreNotify/"; QString const SnoreServer::snoreTMP=QDir::temp().path()+"/SnoreNotify/";
SnoreServer::SnoreServer():primaryNotificationBackend(0) SnoreServer::SnoreServer():_notificationBackend(0)
{ {
qDebug()<<"Inititalized"; qDebug()<<"Inititalized";
QDir home(snoreTMP); QDir home(snoreTMP);
@ -41,35 +41,37 @@ SnoreServer::SnoreServer():primaryNotificationBackend(0)
} }
void SnoreServer::publicatePlugin(QObject *plugin){ void SnoreServer::publicatePlugin(QObject *plugin){
qDebug()<<"Loading plugin: "<<plugin->property("name").value<QString>(); QString pluginName(plugin->property("name").value<QString>());
qDebug()<<"Loading plugin: "<<pluginName;
SnorePlugin *sp=qobject_cast<SnorePlugin*>(plugin); SnorePlugin *sp=qobject_cast<SnorePlugin*>(plugin);
if(sp){ if(sp){
plugins.insert(plugin->property("name").value<QString>(),plugin); plugins.insert(pluginName,plugin);
qDebug()<<plugin->property("name").value<QString>()<<"is a SnorePlugin"; qDebug()<<plugin->property("name").value<QString>()<<"is a SnorePlugin";
sp->setSnore(this); sp->setSnore(this);
} }
Notification_Frontend *nf=qobject_cast<Notification_Frontend*>(plugin); Notification_Frontend *nf=qobject_cast<Notification_Frontend*>(plugin);
if(nf){ if(nf){
qDebug()<<plugin->property("name").value<QString>()<<"is a Notification_Frontend"; qDebug()<<pluginName<<"is a Notification_Frontend";
nf->setSnore(this); nf->setSnore(this);
} }
Notification_Backend * nb=qobject_cast<Notification_Backend *>(plugin); Notification_Backend * nb=qobject_cast<Notification_Backend *>(plugin);
if(nb){ if(nb){
qDebug()<<plugin->property("name").value<QString>()<<"is a Notification_Backend"; qDebug()<<pluginName<<"is a Notification_Backend";
if(nb->isPrimaryNotificationBackend()){ if(nb->isPrimaryNotificationBackend()){
if(primaryNotificationBackend){ if(_notificationBackend){
notyfier.append(primaryNotificationBackend); _notyfier.insert(pluginName,nb);
connect(this,SIGNAL(notify(QSharedPointer<Notification>)),primaryNotificationBackend,SLOT(notify(QSharedPointer<Notification>))); _primaryNotificationBackends.insert(pluginName,nb);
connect(this,SIGNAL(notify(QSharedPointer<Notification>)),_notificationBackend,SLOT(notify(QSharedPointer<Notification>)));
} }
primaryNotificationBackend=nb; _notificationBackend=nb;
primaryNotificationBackend->notify(QSharedPointer<Notification>(new Notification(NULL,"Welcome","Snore Notify succesfully registred "+plugin->property("name").value<QString>(),""))); _notificationBackend->notify(QSharedPointer<Notification>(new Notification(NULL,"Welcome","Snore Notify succesfully registred "+plugin->property("name").value<QString>(),"")));
}else{ }else{
notyfier.append(nb); _notyfier.insert(pluginName,nb);
connect(this,SIGNAL(notify(QSharedPointer<Notification>)),nb,SLOT(notify(QSharedPointer<Notification>))); connect(this,SIGNAL(notify(QSharedPointer<Notification>)),nb,SLOT(notify(QSharedPointer<Notification>)));
} }
connect(this,SIGNAL(closeNotify(int)),nb,SLOT(closeNotification(int))); connect(this,SIGNAL(closeNotify(int)),nb,SLOT(closeNotification(int)));
@ -80,8 +82,8 @@ void SnoreServer::publicatePlugin(QObject *plugin){
int SnoreServer::broadcastNotification(QSharedPointer<Notification> notification){ int SnoreServer::broadcastNotification(QSharedPointer<Notification> notification){
emit notify(notification); emit notify(notification);
qDebug()<<"Broadcasting notification:"<<notification->toString(); qDebug()<<"Broadcasting notification:"<<notification->toString();
if(primaryNotificationBackend!=NULL){ if(_notificationBackend!=NULL){
notification->_id=primaryNotificationBackend->notify(notification); notification->_id=_notificationBackend->notify(notification);
std::cout<<"Notification ID: "<<QString::number(notification->_id).toLatin1().data()<<std::endl; std::cout<<"Notification ID: "<<QString::number(notification->_id).toLatin1().data()<<std::endl;
return notification->_id; return notification->_id;
} }
@ -104,24 +106,36 @@ void SnoreServer::notificationActionInvoked(QSharedPointer<Notification> notific
} }
void SnoreServer::addApplication(QSharedPointer<Application> application){ void SnoreServer::addApplication(QSharedPointer<Application> application){
applications.insert(application->name,application); _applications.insert(application->name,application);
emit applicationListChanged(); emit applicationListChanged();
} }
bool SnoreServer::applicationListAlertIsActive(const QString &applicationName,const QString &alertName){ bool SnoreServer::applicationListAlertIsActive(const QString &applicationName,const QString &alertName){
return applications.contains(applicationName)&&applications.value(applicationName)->alerts.contains(alertName) return _applications.contains(applicationName)&&_applications.value(applicationName)->alerts.contains(alertName)
&&!applications.value(applicationName)->alerts.value(alertName)->active; &&!_applications.value(applicationName)->alerts.value(alertName)->active;
} }
void SnoreServer::addAlert(const QString &appName,const QString &alertName, const QString &alertTitle){ void SnoreServer::addAlert(const QString &appName,const QString &alertName, const QString &alertTitle){
applications.value(appName)->addAlert(alertName,alertTitle); _applications.value(appName)->addAlert(alertName,alertTitle);
emit applicationListChanged(); emit applicationListChanged();
} }
void SnoreServer::removeApplication(const QString& appName){ void SnoreServer::removeApplication(const QString& appName){
applications.take(appName).clear(); _applications.take(appName).clear();
emit applicationListChanged(); emit applicationListChanged();
} }
const ApplicationsList &SnoreServer::aplicationList() const{
return _applications;
}
const QHash<QString,Notification_Backend*> &SnoreServer::primaryNotificationBackends()const{
return _primaryNotificationBackends;
}
void SnoreServer::setNotificationBackend(Notification_Backend *backend){
_notificationBackend=backend;
}
#include "snoreserver.moc" #include "snoreserver.moc"

View File

@ -50,19 +50,20 @@ public:
bool applicationListAlertIsActive(const QString &applicationName,const QString &alertName); bool applicationListAlertIsActive(const QString &applicationName,const QString &alertName);
void addAlert(const QString &appName,const QString &alertName, const QString &alertTitle); void addAlert(const QString &appName,const QString &alertName, const QString &alertTitle);
void removeApplication(const QString& appName); void removeApplication(const QString& appName);
const ApplicationsList &aplicationList() const;
const QHash<QString,Notification_Backend*> &primaryNotificationBackends() const;
void setNotificationBackend(Notification_Backend *backend);
ApplicationsList* getAplicationList(){
return &applications;
}
QHash<QString,QObject*> plugins; QHash<QString,QObject*> plugins;
private: private:
ApplicationsList applications; ApplicationsList _applications;
QList<Notification_Backend*> notyfier; QHash<QString,Notification_Backend*> _notyfier;
Notification_Backend * primaryNotificationBackend; QHash<QString,Notification_Backend*> _primaryNotificationBackends;
Notification_Backend * _notificationBackend;
signals: signals:

View File

@ -11,7 +11,7 @@ int main(int argc, char *argv[])
QApplication a(argc, argv); QApplication a(argc, argv);
SnoreServer s; SnoreServer s;
QDir pluginsDir(a.applicationDirPath()+"/plugins"); QDir pluginsDir(a.applicationDirPath()+"/snoreplugins");
foreach (QString fileName, pluginsDir.entryList(QDir::Files)) { foreach (QString fileName, pluginsDir.entryList(QDir::Files)) {
QPluginLoader loader(pluginsDir.absoluteFilePath(fileName)); QPluginLoader loader(pluginsDir.absoluteFilePath(fileName));
QObject *plugin = loader.instance(); QObject *plugin = loader.instance();

View File

@ -1,4 +1,4 @@
SET(LIBRARY_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH}/plugins) SET(LIBRARY_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH}/snoreplugins)
add_subdirectory(freedesktopnotification) add_subdirectory(freedesktopnotification)
add_subdirectory(freedesktopfrontend) add_subdirectory(freedesktopfrontend)

View File

@ -6,4 +6,8 @@ if(QT_QTDBUS_FOUND)
) )
automoc4_add_library(dbusbinding MODULE ${DBUSBINDING_SRC} ) automoc4_add_library(dbusbinding MODULE ${DBUSBINDING_SRC} )
target_link_libraries(dbusbinding ${QT_QTDBUS_LIBRARY} snorecore ) target_link_libraries(dbusbinding ${QT_QTDBUS_LIBRARY} snorecore )
install(TARGETS dbusbinding RUNTIME DESTINATION bin/snoreplugins
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
endif(QT_QTDBUS_FOUND) endif(QT_QTDBUS_FOUND)

View File

@ -23,13 +23,17 @@ void DBusPlugin::setSnore(SnoreServer *snore){
new DBusBinding(this,snore); new DBusBinding(this,snore);
} }
DBusBinding::DBusBinding(DBusPlugin* parent,SnoreServer* snore):QDBusAbstractAdaptor(parent),snore(snore){ DBusBinding::DBusBinding(DBusPlugin* parent,SnoreServer* snore):
QDBusAbstractAdaptor(parent),
snore(snore)
{
registerTypes(); registerTypes();
QDBusConnection dbus = QDBusConnection::sessionBus(); QDBusConnection dbus = QDBusConnection::sessionBus();
dbus.registerService( "org.SnoreNotify" ); dbus.registerService( "org.SnoreNotify" );
dbus.registerObject( "/SnoreNotify", this ); dbus.registerObject( "/SnoreNotify", this );
connect(snore,SIGNAL(applicationListChanged()),this,SLOT(applicationListChangedSlot())); connect(snore,SIGNAL(applicationListChanged()),this,SLOT(applicationListChangedSlot()));
} }
DBusBinding::~DBusBinding(){ DBusBinding::~DBusBinding(){
QDBusConnection dbus = QDBusConnection::sessionBus(); QDBusConnection dbus = QDBusConnection::sessionBus();
dbus.unregisterService( "/SnoreNotify" ); dbus.unregisterService( "/SnoreNotify" );
@ -43,20 +47,15 @@ void DBusBinding::registerTypes(){
qDBusRegisterMetaType<AlertList>(); qDBusRegisterMetaType<AlertList>();
} }
ApplicationsList DBusBinding::getApplicationList(){
return *snore->getAplicationList();
}
void DBusBinding::setAlertActive(const QString &application,const QString &name,const bool active){ void DBusBinding::setAlertActive(const QString &application,const QString &name,const bool active){
QSharedPointer<Application> ap(snore->getAplicationList()->value(application)); QSharedPointer<Application> ap(snore->aplicationList().value(application));
ap->alerts.value(name)->active=active; ap->alerts.value(name)->active=active;
emit applicationListChanged(*snore->getAplicationList()); emit applicationListChanged(snore->aplicationList());
} }
void DBusBinding::applicationListChangedSlot(){ void DBusBinding::applicationListChangedSlot(){
emit applicationListChanged(*snore->getAplicationList()); emit applicationListChanged(snore->aplicationList());
} }

View File

@ -43,7 +43,6 @@ private:
QPointer<SnoreServer> snore; QPointer<SnoreServer> snore;
public slots: public slots:
ApplicationsList getApplicationList();
void setAlertActive(const QString &application,const QString &alert,const bool active); void setAlertActive(const QString &application,const QString &alert,const bool active);
signals: signals:

View File

@ -11,6 +11,10 @@ if(QT_QTDBUS_FOUND)
automoc4_add_library(freedesktop_frontend MODULE ${FREEDESKTOP_NOTIFICATION_FRONTEND_SRC} ) automoc4_add_library(freedesktop_frontend MODULE ${FREEDESKTOP_NOTIFICATION_FRONTEND_SRC} )
target_link_libraries(freedesktop_frontend snorecore ${QT_QTDBUS_LIBRARY} ${QT_QTGUI_LIBRARY} ) target_link_libraries(freedesktop_frontend snorecore ${QT_QTDBUS_LIBRARY} ${QT_QTGUI_LIBRARY} )
install(TARGETS freedesktop_frontend RUNTIME DESTINATION bin/snoreplugins
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
endif(QT_QTDBUS_FOUND) endif(QT_QTDBUS_FOUND)

View File

@ -7,6 +7,11 @@ if( GROWL_CPP )
) )
automoc4_add_library(growl_backend MODULE ${GROWL__SRC} ) automoc4_add_library(growl_backend MODULE ${GROWL__SRC} )
target_link_libraries(growl_backend snorecore ${QT_QTCORE_LIBRARY} ${GROWL_CPP} ) target_link_libraries(growl_backend snorecore ${QT_QTCORE_LIBRARY} ${GROWL_CPP} )
install(TARGETS growl_backend RUNTIME DESTINATION bin/snoreplugins
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
else( GROWL_CPP ) else( GROWL_CPP )
message( STATUS "libgrowl not found..., get it here http://github.com/mattn/gntp-send" ) message( STATUS "libgrowl not found..., get it here http://github.com/mattn/gntp-send" )
endif( GROWL_CPP ) endif( GROWL_CPP )

View File

@ -30,10 +30,10 @@ Growl_Backend::~Growl_Backend(){
} }
int Growl_Backend::notify(QSharedPointer<Notification> notification){ int Growl_Backend::notify(QSharedPointer<Notification> notification){
QString title=Notification::toPlainText(notification->title); QString title=Notification::toPlainText(notification->title());
QString text=Notification::toPlainText(notification->text); QString text=Notification::toPlainText(notification->text());
qDebug()<<title<<text; qDebug()<<title<<text;
growl->Notify("SnoreNotification",title.toLatin1().data(),text.toLatin1().data(),NULL,notification->getIcon().toLatin1().data()); growl->Notify("SnoreNotification",title.toLatin1().data(),text.toLatin1().data(),NULL,notification->icon().toLatin1().data());
return ++id; return ++id;
} }

View File

@ -3,5 +3,8 @@ if(WITH_WEBINTERFACE)
redirector.cpp redirector.cpp
) )
automoc4_add_library(redirector MODULE ${REDIRECTOR_SRC}) automoc4_add_library(redirector MODULE ${REDIRECTOR_SRC})
target_link_libraries(redirector snorecore webinterface) target_link_libraries(redirector snorecore snorewebinterface)
install(TARGETS redirector RUNTIME DESTINATION bin/snoreplugins
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
endif(WITH_WEBINTERFACE) endif(WITH_WEBINTERFACE)

View File

@ -60,7 +60,7 @@ bool Redircetor::parseCommand(QTcpSocket *client, const QString &command){
subscriber->connectToHost(addres,port ,QTcpSocket::ReadWrite); subscriber->connectToHost(addres,port ,QTcpSocket::ReadWrite);
if(subscriber->waitForConnected()){ if(subscriber->waitForConnected()){
SnoreServer* snore(getSnore()); SnoreServer* snore(getSnore());
foreach(QSharedPointer<Application> a,snore->getAplicationList()->values()){ foreach(QSharedPointer<Application> a,snore->aplicationList().values()){
QString* app=&a->name; QString* app=&a->name;
subscriber->write(QString("type=SNP#?version=1.1#?action=register#?app="+*app+"\r\n").toUtf8()); subscriber->write(QString("type=SNP#?version=1.1#?action=register#?app="+*app+"\r\n").toUtf8());
foreach(const QSharedPointer<Alert> al,a->alerts.values()){ foreach(const QSharedPointer<Alert> al,a->alerts.values()){

View File

@ -4,5 +4,10 @@ if(WITH_WEBINTERFACE)
) )
automoc4_add_library(registredapps MODULE ${REGISTREDAPPS_SRC} ) automoc4_add_library(registredapps MODULE ${REGISTREDAPPS_SRC} )
target_link_libraries(registredapps snorecore webinterface) target_link_libraries(registredapps snorecore snorewebinterface)
install(TARGETS registredapps RUNTIME DESTINATION bin/snoreplugins
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
endif(WITH_WEBINTERFACE) endif(WITH_WEBINTERFACE)

View File

@ -32,7 +32,7 @@ bool RegistredApps::parseCommand(QTcpSocket *client, const QString &command){
QString out; QString out;
out+="Registred Applications\n"; out+="Registred Applications\n";
SnoreServer *snore=getSnore(); SnoreServer *snore=getSnore();
foreach(QSharedPointer<Application> a,snore->getAplicationList()->values()){ foreach(QSharedPointer<Application> a,snore->aplicationList().values()){
out+=a->name+"\n"; out+=a->name+"\n";
out+="Registred alerts of "+a->name+"\t alert\t title \t is Active\n"; out+="Registred alerts of "+a->name+"\t alert\t title \t is Active\n";
foreach(const QSharedPointer<Alert> al,a->alerts.values()) foreach(const QSharedPointer<Alert> al,a->alerts.values())

View File

@ -6,4 +6,9 @@ if(WIN32)
) )
automoc4_add_library(snarln_backend MODULE ${SNARL__SRC} ) automoc4_add_library(snarln_backend MODULE ${SNARL__SRC} )
target_link_libraries(snarln_backend snorecore ${QT_QTCORE_LIBRARY} ) target_link_libraries(snarln_backend snorecore ${QT_QTCORE_LIBRARY} )
install(TARGETS snarln_backend RUNTIME DESTINATION bin/snoreplugins
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
endif(WIN32) endif(WIN32)

View File

@ -4,3 +4,7 @@ set( SNARL_NETWORK_SRC
) )
automoc4_add_library(snarlnetwork MODULE ${SNARL_NETWORK_SRC} ) automoc4_add_library(snarlnetwork MODULE ${SNARL_NETWORK_SRC} )
target_link_libraries(snarlnetwork snorecore ${QT_QTNETWORK_LIBRARY} ) target_link_libraries(snarlnetwork snorecore ${QT_QTNETWORK_LIBRARY} )
install(TARGETS snarlnetwork RUNTIME DESTINATION bin/snoreplugins
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)

View File

@ -132,8 +132,8 @@ SnarlNotification Parser::parse(QString &msg,QTcpSocket* client){
snarl->getSnore()->addAlert(sNotification.notification->application(),alert,title); snarl->getSnore()->addAlert(sNotification.notification->application(),alert,title);
break; break;
case REGISTER: case REGISTER:
qDebug()<<snarl->getSnore()->getAplicationList()->keys(); qDebug()<<snarl->getSnore()->aplicationList().keys();
if(!snarl->getSnore()->getAplicationList()->contains(sNotification.notification->application())&&!sNotification.notification->application().isEmpty()){ if(!snarl->getSnore()->aplicationList().contains(sNotification.notification->application())&&!sNotification.notification->application().isEmpty()){
snarl->getSnore()->addApplication(QSharedPointer<Application>(new Application(sNotification.notification->application()))); snarl->getSnore()->addApplication(QSharedPointer<Application>(new Application(sNotification.notification->application())));
} }
else else

View File

@ -3,3 +3,7 @@ set( WEBPOSTER_SRC
) )
automoc4_add_library(webposter MODULE ${WEBPOSTER_SRC} ) automoc4_add_library(webposter MODULE ${WEBPOSTER_SRC} )
target_link_libraries(webposter snorecore ${QT_QTNETWORK_LIBRARY} ) target_link_libraries(webposter snorecore ${QT_QTNETWORK_LIBRARY} )
install(TARGETS webposter RUNTIME DESTINATION bin/snoreplugins
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)

View File

@ -3,8 +3,12 @@ if(WITH_WEBINTERFACE)
set( WEBINTERFACE_SRC set( WEBINTERFACE_SRC
webinterface.cpp webinterface.cpp
) )
automoc4_add_library(webinterface SHARED ${WEBINTERFACE_SRC} ) automoc4_add_library(snorewebinterface SHARED ${WEBINTERFACE_SRC} )
set_target_properties( webinterface PROPERTIES COMPILE_FLAGS "-DWEBINTERFACE_DLL" ) set_target_properties( snorewebinterface PROPERTIES COMPILE_FLAGS "-DWEBINTERFACE_DLL" )
target_link_libraries(webinterface snorecore ${QT_QTNETWORK_LIBRARY} ) target_link_libraries(snorewebinterface snorecore ${QT_QTNETWORK_LIBRARY} )
install(TARGETS snorewebinterface RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
endif(WITH_WEBINTERFACE) endif(WITH_WEBINTERFACE)