From 8488e29d2ed8887fc133470d0cc95b460b4a12d3 Mon Sep 17 00:00:00 2001 From: sr Date: Mon, 4 Feb 2013 19:30:15 +0100 Subject: Test --- CMakeLists.txt | 202 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 202 insertions(+) create mode 100644 CMakeLists.txt (limited to 'CMakeLists.txt') 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 " ) +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 ) -- cgit v1.2.3-55-g7522