From ce3329047d378a14006ce74ec273ac59e3375303 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Wed, 12 May 2010 19:42:27 +0200 Subject: initial import of latest svn version --- CMakeLists.txt | 344 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 344 insertions(+) create mode 100644 CMakeLists.txt (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..00de7a5 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,344 @@ +################################################################################ +# General +################################################################################ + +# set project's name +PROJECT( pvs ) + +# cmake min version +CMAKE_MINIMUM_REQUIRED( VERSION 2.6.2 ) + +# set compiler optimizations for debug and release +SET(CMAKE_BUILD_TYPE Debug) +SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -Wall") +SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -march=native") +# -DQT_NO_DEBUG_OUTPUT") + +# local cmake modules +SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}) + +#Test +SET(CMAKE_EDIT_COMMAND ${CMAKE_SOURCE_DIR}) + +# this command finds libraries and sets all required variables +FIND_PACKAGE( Qt4 4.5.0 REQUIRED ) +FIND_PACKAGE( X11 REQUIRED ) +FIND_PACKAGE( VNC REQUIRED ) + +# some includes +INCLUDE_DIRECTORIES( + ${CMAKE_SOURCE_DIR} + ${CMAKE_BINARY_DIR} +) + +################################################################################ +# Variables +################################################################################ + +# with SET() command you can change variables or define new ones. +# we define PVSMGR_SRCS variable that contains a list of all .cpp files +SET( PVSMGR_SRCS + src/pvsmgr.cpp + src/core/pvsClient.cpp + src/core/pvsConnectionManager.cpp + src/core/vncConnection.cpp + src/core/pvsServer.cpp + src/gui/mainWindow.cpp + src/gui/connectionWindow.cpp + src/gui/frame.cpp + src/util/vncClientThread.cpp + src/gui/connectionFrame.cpp + src/gui/connectionList.cpp + src/gui/profileDialog.cpp + src/gui/dialog.cpp + src/gui/serverChatDialog.cpp + src/gui/projectionDialog.cpp + src/gui/serverFileTransfert.cpp + src/net/pvsMsg.cpp + src/net/pvsListenServer.cpp + src/net/pvsClientConnection.cpp + src/net/pvsServiceBroadcast.cpp + src/util/consoleLogger.cpp + src/util/pvsSettingsManager.cpp + src/util/util.cpp + src/net/SslServer.cpp + src/util/CertManager.cpp + src/util/TextFile.cpp + src/util/serviceDiscoveryUtil.cpp + src/gui/aboutDialog.cpp +) + +# pvs +SET( PVS_SRCS + src/pvsDaemon.cpp + src/pvs.cpp + src/net/pvsMsg.cpp + src/core/pvsChatMsg.cpp + src/net/pvsServerConnection.cpp + src/net/pvsLocalhostCommunicator.cpp + src/util/util.cpp + src/util/consoleLogger.cpp + src/util/clientGUIUtils.cpp + src/util/pvsSettingsManager.cpp + src/core/pvsChatClient.cpp + src/net/pvsServiceDiscovery.cpp + src/net/pvsDiscoveredServer.cpp + src/util/TextFile.cpp + src/util/serviceDiscoveryUtil.cpp +) + +# pvsgui +SET( PVSGUI_SRCS + src/pvsgui.cpp + src/gui/clientConfigDialog.cpp + src/gui/clientFileSendDialog.cpp + src/gui/clientFileReceiveDialog.cpp + src/gui/clientChatDialog.cpp + src/gui/clientVNCViewer.cpp + src/gui/clientInfoDialog.cpp + src/util/vncClientThread.cpp + src/util/TextFile.cpp + src/gui/aboutDialog.cpp +) + + +################################################################################ +# Qt +################################################################################ + +# some .ui files (Qt) +SET( PVSMGR_UIS + src/gui/ui/mainwindow.ui + src/gui/ui/profileDialog.ui + src/gui/ui/dialog.ui + src/gui/ui/projectionDialog.ui + src/gui/ui/aboutDialog.ui + src/gui/ui/serverChatDialog.ui + src/gui/ui/clientFileSendDialog.ui +) + +SET( PVSMGRTOUCH_UIS + src/gui/ui/mainwindowtouch.ui + src/gui/ui/profileDialog.ui + src/gui/ui/dialog.ui + src/gui/ui/projectionDialog.ui + src/gui/ui/aboutDialog.ui + src/gui/ui/serverChatDialog.ui +) + +SET( PVSGUI_UIS + src/gui/ui/clientConfigDialog.ui + src/gui/ui/clientFileSendDialog.ui + src/gui/ui/clientFileReceiveDialog.ui + src/gui/ui/clientChatDialog.ui + src/gui/ui/clientInfoDialog.ui + src/gui/ui/aboutDialog.ui + src/gui/ui/clientToolbar.ui + src/gui/ui/clientNicklistDialog.ui +) + +# resource file (Qt) +SET( PVSMGR_RCS + pvsmgr.qrc +) + +SET( PVS_RCS + pvs.qrc +) + +SET( PVSGUI_RCS + pvsgui.qrc +) + +# includes all header files that should be treated with moc (Qt) +SET( PVSMGR_MOC_HDRS + src/gui/mainWindow.h + src/gui/connectionWindow.h + src/gui/frame.h + src/util/vncClientThread.h + src/gui/connectionList.h + src/gui/connectionFrame.h + src/gui/profileDialog.h + src/gui/dialog.h + src/gui/projectionDialog.h + src/gui/serverChatDialog.h + src/gui/serverFileTransfert.h + src/net/pvsClientConnection.h + src/net/pvsListenServer.h + src/core/pvsClient.h + src/core/vncConnection.h + src/net/pvsServiceBroadcast.h + src/net/SslServer.h + src/gui/aboutDialog.h +) + +SET( PVS_MOC_HDRS + src/pvs.h + src/net/pvsLocalhostCommunicator.h + src/net/pvsServerConnection.h + src/net/pvsServiceDiscovery.h + src/net/pvsDiscoveredServer.h +) + +SET( PVSGUI_MOC_HDRS + src/pvsgui.h + src/gui/clientConfigDialog.h + src/gui/clientFileSendDialog.h + src/gui/clientFileReceiveDialog.h + src/gui/clientChatDialog.h + src/gui/clientVNCViewer.h + src/gui/clientInfoDialog.h + src/util/vncClientThread.h + src/gui/aboutDialog.h +) + +# i18n (Qt) +SET( PVSMGR_TSS + i18n/pvsmgr_de_DE.ts + i18n/pvsmgr_fr_FR.ts + i18n/pvsmgr_es_MX.ts + i18n/pvsmgr_ar_JO.ts + i18n/pvsmgr_pl_PL.ts +) + +SET( PVS_TSS + i18n/pvs_de_DE.ts + i18n/pvs_fr_FR.ts + i18n/pvs_es_MX.ts + i18n/pvs_ar_JO.ts + i18n/pvs_pl_PL.ts +) + +SET( PVSGUI_TSS + i18n/pvsgui_de_DE.ts + i18n/pvsgui_fr_FR.ts + i18n/pvsgui_es_MX.ts + i18n/pvsgui_ar_JO.ts + i18n/pvsgui_pl_PL.ts +) + + +# by default only QtCore and QtGui modules are enabled +# other modules must be enabled like this: +SET( QT_USE_QTDBUS TRUE ) +SET( QT_USE_QTNETWORK TRUE ) + +# add some useful macros and variables +# (QT_USE_FILE is a variable defined by FIND_PACKAGE( Qt4 ) that contains +# a path to CMake script) +INCLUDE( ${QT_USE_FILE} ) + +# this command will generate rules that will run rcc on all files from +# PVSCLIENTGUI_RCS. in result PVSCLIENTGUI_RC_SRCS variable will contain paths +# to files produced by rcc +QT4_ADD_RESOURCES( PVSMGR_RC_SRCS ${PVSMGR_RCS} ) +QT4_ADD_RESOURCES( PVS_RC_SRCS ${PVS_RCS} ) +QT4_ADD_RESOURCES( PVSGUI_RC_SRCS ${PVSGUI_RCS} ) + +# this will run uic on .ui files: +QT4_WRAP_UI( PVSMGR_UI_HDRS ${PVSMGR_UIS} ) +QT4_WRAP_UI( PVSMGRTOUCH_UI_HDRS ${PVSMGRTOUCH_UIS} ) +QT4_WRAP_UI( PVSGUI_UI_HDRS ${PVSGUI_UIS} ) + +# this will run moc: +QT4_WRAP_CPP( PVSMGR_MOC_SRCS ${PVSMGR_MOC_HDRS} ) +QT4_WRAP_CPP( PVS_MOC_SRCS ${PVS_MOC_HDRS} ) +QT4_WRAP_CPP( PVSGUI_MOC_SRCS ${PVSGUI_MOC_HDRS} ) + +# run qdbuscpp2xml +QT4_GENERATE_DBUS_INTERFACE( src/pvs.h org.openslx.pvs.xml ) + +# run qdbusxml2cpp +QT4_ADD_DBUS_ADAPTOR( PVS_SRCS ${CMAKE_BINARY_DIR}/org.openslx.pvs.xml src/pvs.h PVS ) +QT4_ADD_DBUS_INTERFACE( PVSGUI_SRCS ${CMAKE_BINARY_DIR}/org.openslx.pvs.xml pvsinterface ) + +# i18n, run lupdate and lrelease) +QT4_CREATE_TRANSLATION( PVSMGR_QMS ${PVSMGR_SRCS} ${PVSMGR_UI_HDRS} ${PVSMGR_TSS} ) +QT4_CREATE_TRANSLATION( PVS_QMS ${PVS_SRCS} ${PVS_TSS} ) +QT4_CREATE_TRANSLATION( PVSGUI_QMS ${PVSGUI_SRCS} ${PVSGUI_UI_HDRS} ${PVSGUI_TSS} ) + +################################################################################ +# Build +################################################################################ + +## here we instruct CMake to build our executable from all of the source files +ADD_EXECUTABLE( pvsmgr + ${PVSMGR_SRCS} + ${PVSMGR_MOC_SRCS} + ${PVSMGR_UI_HDRS} + ${PVSMGR_RC_SRCS} + ${PVSMGR_QMS} +) + +ADD_EXECUTABLE( pvsmgrtouch + ${PVSMGR_SRCS} + ${PVSMGR_MOC_SRCS} + ${PVSMGRTOUCH_UI_HDRS} + ${PVSMGR_RC_SRCS} + ${PVSMGR_QMS} +) + +ADD_EXECUTABLE( pvs + ${PVS_SRCS} + ${PVS_MOC_SRCS} + ${PVS_RC_SRCS} + ${PVS_QMS} +) + +ADD_EXECUTABLE( pvsgui + ${PVSGUI_SRCS} + ${PVSGUI_MOC_SRCS} + ${PVSGUI_UI_HDRS} + ${PVSGUI_RC_SRCS} + ${PVSGUI_QMS} +) + +# last thing we have to do is to tell CMake what libraries our executable needs, +# luckily FIND_PACKAGE prepared variables for us: +TARGET_LINK_LIBRARIES( pvsmgr + ${QT_LIBRARIES} + ${VNC_LIBRARIES} + ${X11_LIBRARIES} +) + +TARGET_LINK_LIBRARIES( pvsmgrtouch + ${QT_LIBRARIES} + ${VNC_LIBRARIES} + ${X11_LIBRARIES} +) + +TARGET_LINK_LIBRARIES( pvs + ${QT_LIBRARIES} + ${VNC_LIBRARIES} + ${X11_LIBRARIES} +) + +TARGET_LINK_LIBRARIES( pvsgui + ${QT_LIBRARIES} + ${VNC_LIBRARIES} +) + +SET_PROPERTY(TARGET pvsmgrtouch PROPERTY COMPILE_DEFINITIONS MAINWINDOW_USE_TOUCHGUI) +SET_PROPERTY(TARGET pvsmgr PROPERTY COMPILE_DEFINITIONS MAINWINDOW_USE_NORMALGUI) + +# add install target to our makefile +CONFIGURE_FILE( org.openslx.pvs.service ${CMAKE_BINARY_DIR}/org.openslx.pvs.service ) +INSTALL( TARGETS pvsmgr pvs pvsgui pvsmgrtouch RUNTIME DESTINATION bin ) +INSTALL( FILES ${CMAKE_BINARY_DIR}/org.openslx.pvs.service DESTINATION share/dbus-1/services ) + +# add package target to our makefile +SET( CPACK_GENERATOR "DEB" ) +SET( CPACK_SET_DESTDIR "ON" ) +SET( CPACK_PACKAGE_NAME "pvs" ) +SET( CPACK_PACKAGE_VERSION_MAJOR "1" ) +SET( CPACK_PACKAGE_VERSION_MINOR "7" ) +SET( CPACK_PACKAGE_VERSION_PATCH "9" ) +SET( CPACK_PACKAGE_DESCRIPTION_SUMMARY "Pool Video Switch" ) +SET( CPACK_PACKAGE_DESCRIPTION "") +SET( CPACK_PACKAGE_CONTACT "Simon Wittenberg " ) +SET( CPACK_DEBIAN_PACKAGE_DEPENDS "libvncserver0 (>= 0.9.3.dfsg.1-2), libqtgui4 (>= 4:4.5.3-4), libqt4-dbus (>= 4:4.5.3-4), libqt4-network (4:4.5.3-4)" ) +SET( CPACK_DEBIAN_PACKAGE_ARCHITECTURE "i386" ) +SET( CPACK_DEBIAN_PACKAGE_SECTION "Network" ) +SET( CPACK_DEBIAN_PACKAGE_PRIORITY "optional" ) +SET( CPACK_DEBIAN_PACKAGE_RECOMMENDS "x11vnc (>= 0.9.9-1)" ) +INCLUDE( CPack ) # must be last! -- cgit v1.2.3-55-g7522