SET(QT_DONT_USE_QTGUI "YES")
INCLUDE(${QT_USE_FILE})

# select implementation of connectors to desktop environment:
SET(INTEGRATION_BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/simplistic")
SET(INTEGRATION_DIR_OVERRIDE "unset"
    CACHE PATH "Integration directory path override."
)

IF (KDE4_FOUND)
    SET(INTEGRATION_BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/kde4")
ENDIF (KDE4_FOUND)
IF (NOT INTEGRATION_DIR_OVERRIDE STREQUAL "unset")
    SET(INTEGRATION_BASE_DIR "${INTEGRATION_DIR_OVERRIDE}")
ENDIF (NOT INTEGRATION_DIR_OVERRIDE STREQUAL "unset")

SET(INTEGRATION_DIR "${INTEGRATION_BASE_DIR}")

INCLUDE_DIRECTORIES(${QT_QTCORE_INCLUDE_DIR}
                    ${QTTAPIOCA_INC_DIR}
                    ${CMAKE_CURRENT_BINARY_DIR}
                    ${CMAKE_CURRENT_SOURCE_DIR}
                    ${INTEGRATION_DIR}
                    ${CMAKE_SOURCE_DIR}/include
)

CONFIGURE_FILE(
    "${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake"
    "${CMAKE_CURRENT_BINARY_DIR}/config.h"
)

# ######### Decibel Server Library #########

SET(decibelstatic_SRCS
    ../common/types.cpp
    protocolmanager.cpp
    accountmanager.cpp
    connectionfacade.cpp
    contactmanager.cpp
    componentmanager.cpp
    policyengine.cpp
    ${INTEGRATION_DIR}/contactconnector.cpp
    ${INTEGRATION_DIR}/accountconnector.cpp
)

SET(decibelstatic_MOC_HDRS
    protocolmanager.h
    accountmanager.h
    connectionfacade.h
    contactmanager.h
    componentmanager.h
    policyengine.h
)

SET(decibelstatic_HDRS
    ${decibel_public_HDRS}
)

QT4_ADD_DBUS_ADAPTOR(decibelstatic_SRCS
                     ../../xml/server/protocolmanager.xml
                     protocolmanager.h
                     ProtocolManager
)
QT4_ADD_DBUS_ADAPTOR(decibelstatic_SRCS
                     ../../xml/server/accountmanager.xml
                     accountmanager.h
                     AccountManager
)
QT4_ADD_DBUS_ADAPTOR(decibelstatic_SRCS
                     ../../xml/server/componentmanager.xml
                     componentmanager.h
                     ComponentManager
)
QT4_ADD_DBUS_ADAPTOR(decibelstatic_SRCS
                     ../../xml/server/contactmanager.xml
                     contactmanager.h
                     ContactManager
)
# client interfaces:
QT4_ADD_DBUS_INTERFACE(decibelstatic_SRCS
                       ../../xml/client/channelhandler.xml
                       channelhandler
                       Decibel/Types
)

QT4_WRAP_CPP(decibelstatic_MOC_SRCS ${decibelstatic_MOC_HDRS})

ADD_LIBRARY(decibelstatic STATIC
            ${decibelstatic_SRCS}
            ${decibelstatic_HDRS}
            ${decibelstatic_MOC_SRCS}
)

if (APPLE)
	# no such thing as fully-static on OSX; we need these deps
	# to actually link
	TARGET_LINK_LIBRARIES(decibelstatic ${QT_QTDBUS_LIBRARY})
endif (APPLE)

# ######### Decibel Daemon ##########

ADD_EXECUTABLE(decibel main.cpp)
TARGET_LINK_LIBRARIES(decibel
                      ${QT_LIBRARIES}
                      ${QTTAPIOCA_LIBRARIES}
                      decibelstatic)

if (APPLE)
	# no statics on OSX
	TARGET_LINK_LIBRARIES(decibel ${QT_QTDBUS_LIBRARY})
endif (APPLE)

INSTALL(TARGETS decibel DESTINATION ${BIN_INSTALL_DIR})

