summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorsr2013-02-04 19:30:15 +0100
committersr2013-02-04 19:30:15 +0100
commit8488e29d2ed8887fc133470d0cc95b460b4a12d3 (patch)
tree46eca178fc56b33e8a5a1ea335e79fec2808d4a1 /CMakeLists.txt
downloadpvs2-8488e29d2ed8887fc133470d0cc95b460b4a12d3.tar.gz
pvs2-8488e29d2ed8887fc133470d0cc95b460b4a12d3.tar.xz
pvs2-8488e29d2ed8887fc133470d0cc95b460b4a12d3.zip
Test
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt202
1 files changed, 202 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..07fe109
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,202 @@
+################################################################################
+# General
+################################################################################
+
+PROJECT(pvs2)
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0)
+
+# set compiler optimizations for debug and release
+SET(CMAKE_BUILD_TYPE Debug)
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -Wall -Wunused -Wunreachable-code -pedantic")
+SET(CMAKE_C_FLAGS_RELEASE "-O2")
+SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -Wall")
+SET(CMAKE_CXX_FLAGS_RELEASE "-O2" )
+
+# local cmake modules
+SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
+
+# this command finds libraries and sets all required variables
+FIND_PACKAGE(Qt4 4.7.0 REQUIRED)
+#FIND_PACKAGE(X11 REQUIRED)
+FIND_PACKAGE(VNC REQUIRED)
+
+# some includes
+INCLUDE_DIRECTORIES(
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_BINARY_DIR}
+ ${X11_INCLUDE_DIR}
+# ${X11_XTest_INCLUDE_PATH}
+# ${X11_Xinput_INCLUDE_PATH}
+)
+
+#IF(NOT X11_XTest_FOUND)
+# MESSAGE(FATAL_ERROR "Could not find X11 extension XTest or its developer files.")
+#ENDIF()
+#IF(NOT X11_Xinput_FOUND)
+# MESSAGE(FATAL_ERROR "Could not find X11 extension Xinput or its developer files.")
+#ENDIF()
+
+# TODO: Detect this somehow
+SET(SYSDEP_SUFFIX _X11)
+
+################################################################################
+# Variables
+################################################################################
+
+# pvsmgr
+FILE(GLOB PVSMGR_SRCS
+ src/server/*.cpp
+ src/server/*/*.cpp
+ src/shared/*.cpp
+)
+
+# pvsclient
+FILE(GLOB PVSCLIENT_SRCS
+ src/client/*.cpp
+ src/client/*/*.cpp
+ src/client/util/platform/*${SYSDEP_SUFFIX}.cpp
+ src/shared/*.cpp
+)
+
+
+################################################################################
+# Qt
+################################################################################
+
+# .ui files
+FILE(GLOB PVSMGR_UIS
+ gui/server_normal/*.ui
+)
+
+FILE(GLOB PVSCLIENT_UIS
+ gui/client/*.ui
+)
+
+# .qrc files
+SET(PVSMGR_RCS pvsmgr.qrc)
+SET(PVSCLIENT_RCS pvsclient.qrc)
+
+# includes all header files that should be treated with moc
+SET(PVSMGR_MOC_HDRS
+ src/server/clicklabel/clicklabel.h
+ src/server/connectionframe/connectionframe.h
+ src/server/mainwindow/mainwindow.h
+ src/server/sessionnamewindow/sessionnamewindow.h
+ src/server/net/sslserver.h
+ src/server/net/listenserver.h
+ src/server/net/client.h
+ src/server/net/discoverylistener.h
+)
+
+SET(PVSCLIENT_MOC_HDRS
+ src/client/toolbar/toolbar.h
+ src/client/net/serverconnection.h
+ src/client/vnc/vncthread.h
+ src/client/vnc/vncwindow.h
+ src/client/vnc/vncserver.h
+ src/client/connectwindow/connectwindow.h
+ src/client/util/platform/blankscreen.h
+)
+
+# i18n
+FILE(GLOB PVSMGR_TSS
+ i18n/server/*.ts
+)
+
+FILE(GLOB PVSCLIENT_TSS
+ i18n/client/*.ts
+)
+
+
+# include Qt modules
+#SET(QT_USE_QTDBUS TRUE)
+SET(QT_USE_QTNETWORK TRUE)
+#SET(QT_USE_QTWEBKIT 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 will run rcc on .qrc files
+QT4_ADD_RESOURCES(PVSMGR_RC_SRCS ${PVSMGR_RCS})
+QT4_ADD_RESOURCES(PVSCLIENT_RC_SRCS ${PVSCLIENT_RCS})
+
+# this will run uic on .ui files
+QT4_WRAP_UI(PVSMGR_UI_HDRS ${PVSMGR_UIS})
+QT4_WRAP_UI(PVSCLIENT_UI_HDRS ${PVSCLIENT_UIS})
+
+# this will run moc
+QT4_WRAP_CPP(PVSMGR_MOC_SRCS ${PVSMGR_MOC_HDRS})
+QT4_WRAP_CPP(PVSCLIENT_MOC_SRCS ${PVSCLIENT_MOC_HDRS})
+
+# i18n, run lupdate and lrelease)
+QT4_CREATE_TRANSLATION(PVSMGR_QMS ${PVSMGR_SRCS} ${PVSMGR_UI_HDRS} ${PVSMGR_TSS})
+QT4_CREATE_TRANSLATION(PVSCLIENT_QMS ${PVSCLIENT_SRCS} ${PVSCLIENT_UI_HDRS} ${PVSCLIENT_TSS})
+
+################################################################################
+# Build
+################################################################################
+
+ADD_EXECUTABLE(pvsmgr
+ ${PVSMGR_SRCS}
+ ${PVSMGR_MOC_SRCS}
+ ${PVSMGR_UI_HDRS}
+ ${PVSMGR_RC_SRCS}
+ ${PVSMGR_QMS}
+)
+
+ADD_EXECUTABLE(pvsclient
+ ${PVSCLIENT_SRCS}
+ ${PVSCLIENT_MOC_SRCS}
+ ${PVSCLIENT_UI_HDRS}
+ ${PVSCLIENT_RC_SRCS}
+ ${PVSCLIENT_QMS}
+)
+
+# link
+TARGET_LINK_LIBRARIES(pvsmgr
+ ${QT_LIBRARIES}
+# ${VNC_LIBRARIES}
+# ${X11_LIBRARIES}
+)
+
+TARGET_LINK_LIBRARIES(pvsclient
+ ${QT_LIBRARIES}
+ ${VNC_LIBRARIES}
+)
+
+SET_PROPERTY(TARGET pvsmgr PROPERTY COMPILE_DEFINITIONS MAINWINDOW_USE_NORMALGUI)
+
+# install
+INSTALL(TARGETS pvsmgr pvsclient RUNTIME DESTINATION bin)
+#INSTALL(PROGRAMS misc/pvs-vncsrv DESTINATION bin)
+INSTALL(FILES misc/pvsclient.conf misc/pvsmgr.conf DESTINATION /etc/openslx)
+INSTALL(FILES misc/pvsclient.desktop DESTINATION /etc/xdg/autostart)
+
+# uninstall
+CONFIGURE_FILE(
+ "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Uninstall.cmake"
+ "${CMAKE_CURRENT_BINARY_DIR}/cmake/Uninstall.cmake"
+ IMMEDIATE @ONLY
+)
+ADD_CUSTOM_TARGET(uninstall
+ "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake/Uninstall.cmake"
+)
+
+# package
+SET( CPACK_GENERATOR "DEB" )
+SET( CPACK_SET_DESTDIR "ON" )
+SET( CPACK_PACKAGE_NAME "pvs" )
+SET( CPACK_PACKAGE_VERSION_MAJOR "3" )
+SET( CPACK_PACKAGE_VERSION_MINOR "1" )
+SET( CPACK_PACKAGE_VERSION_PATCH "2" )
+SET( CPACK_PACKAGE_DESCRIPTION_SUMMARY "Pool Video Switch" )
+SET( CPACK_PACKAGE_DESCRIPTION "")
+SET( CPACK_PACKAGE_CONTACT "Johann Latocha <johann@latocha.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 )