summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorSebastian2010-05-12 19:42:27 +0200
committerSebastian2010-05-12 19:42:27 +0200
commitce3329047d378a14006ce74ec273ac59e3375303 (patch)
tree782430f270b4c7aca1b35d5b7813518e3797c555 /CMakeLists.txt
downloadpvs-ce3329047d378a14006ce74ec273ac59e3375303.tar.gz
pvs-ce3329047d378a14006ce74ec273ac59e3375303.tar.xz
pvs-ce3329047d378a14006ce74ec273ac59e3375303.zip
initial import of latest svn version
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt344
1 files changed, 344 insertions, 0 deletions
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 <wittenb@informatik.uni-freiburg.de>" )
+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!