diff options
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 134 |
1 files changed, 38 insertions, 96 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 5e1b550..8bbbb20 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,9 +1,21 @@ ################################################################################ # General ################################################################################ +cmake_minimum_required(VERSION 3.15 FATAL_ERROR) + +set(pvs2_BUILD_TYPES Release Debug) +get_property(multi_config GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) +if(multi_config) + set(CMAKE_CONFIGURATION_TYPES "${pvs2_BUILD_TYPES}" CACHE STRING "list of supported configuration types" FORCE) +else() + set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build Type of the project.") + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "${pvs2_BUILD_TYPES}") + if(NOT CMAKE_BUILD_TYPE IN_LIST pvs2_BUILD_TYPES) + message(FATAL_ERROR "Invalid build type '${CMAKE_BUILD_TYPE}'. Possible values:\n ${pvs2_BUILD_TYPES}") + endif() +endif() PROJECT(pvs2) -CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12 FATAL_ERROR) SET(EXTRA_C_FLAGS "" CACHE STRING "Additional options to pass to C compiler") SET(EXTRA_CXX_FLAGS "" CACHE STRING "Additional options to pass to C++ compiler") @@ -15,7 +27,11 @@ SET(CMAKE_CXX_FLAGS_RELEASE "-O2") # -Wshadow spams too much :/ SET(CMAKE_CXX_STANDARD 11) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11 ${EXTRA_C_FLAGS}") -SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 ${EXTRA_CXX_FLAGS}") +SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-multichar -Wno-error=deprecated-declarations ${EXTRA_CXX_FLAGS}" ) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) # local cmake modules SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) @@ -26,14 +42,13 @@ FIND_PACKAGE(X11 REQUIRED) FIND_PACKAGE(VNC REQUIRED) SET(CMAKE_INCLUDE_CURRENT_DIR ON) -SET(CMAKE_AUTOMOC ON) # some includes -INCLUDE_DIRECTORIES( - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_BINARY_DIR} - ${X11_INCLUDE_DIR} -) +#INCLUDE_DIRECTORIES( +# ${CMAKE_CURRENT_SOURCE_DIR} +# ${CMAKE_CURRENT_BINARY_DIR} +# ${X11_INCLUDE_DIR} +#) IF(X11_Xscreensaver_FOUND) ADD_DEFINITIONS(-DX11_Xscreensaver_FOUND) @@ -78,20 +93,27 @@ FILE(GLOB PVSCLIENT_SRCS ################################################################################ # .ui files -FILE(GLOB PVSMGR_UIS - gui/server_normal/*.ui +FILE(GLOB_RECURSE PVSMGR_UIS + src/server/*.ui ) -FILE(GLOB PVSCLIENT_UIS - gui/client/*.ui +FILE(GLOB_RECURSE PVSCLIENT_UIS + src/client/*.ui ) # .qrc files +# Copy these to build dir since the paths inside are relative, and this is where the translations end up +configure_file(res/pvsmgr_ts.qrc ${CMAKE_CURRENT_BINARY_DIR} COPYONLY) +configure_file(res/pvsclient_ts.qrc ${CMAKE_CURRENT_BINARY_DIR} COPYONLY) + FILE(GLOB PVSMGR_RC_SRCS - pvsmgr.qrc + res/pvsmgr.qrc + ${CMAKE_CURRENT_BINARY_DIR}/pvsmgr_ts.qrc + ) FILE(GLOB PVSCLIENT_RC_SRCS - pvsclient.qrc + res/pvsclient.qrc + ${CMAKE_CURRENT_BINARY_DIR}/pvsclient_ts.qrc ) # i18n @@ -103,57 +125,12 @@ FILE(GLOB PVSCLIENT_TSS i18n/client/*.ts ) - -# this will run uic on .ui files -QT5_WRAP_UI(PVSMGR_UI_HDRS ${PVSMGR_UIS}) -QT5_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}) - -option(UPDATE_TRANSLATIONS "Update .ts files (WARNING: make clean will delete the .ts files!)" OFF) - if(PVSMGR_TSS) - - if (UPDATE_TRANSLATIONS) - set(FILES_TO_TRANSLATE ${PVSMGR_SRCS} ${PVSMGR_UIS}) - QT5_CREATE_TRANSLATION(PVSMGR_QMS ${FILES_TO_TRANSLATE} ${PVSMGR_TSS} OPTIONS -noobsolete) - message(STATUS ".tr files have been updated") - else (UPDATE_TRANSLATIONS) - QT5_ADD_TRANSLATION(PVSMGR_QMS ${PVSMGR_TSS}) - endif (UPDATE_TRANSLATIONS) - # # write a resource file for qm files - # set(resource_file_content "<RCC>\n <qresource prefix=\"/\">\n") - # foreach(file ${PVSMGR_QMS}) - # get_filename_component(filename ${file} NAME) - # set(resource_file_content "${resource_file_content} <file>${filename}</file>\n") - # endforeach(file) - # set(resource_file_content "${resource_file_content} </qresource>\n</RCC>\n") - # file(WRITE "${CMAKE_BINARY_DIR}/ts_pvsmgr.qrc" "${resource_file_content}") - # set(PVSMGR_RESOURCES ${PVSMGR_RESOURCES} "${CMAKE_BINARY_DIR}/ts_pvsmgr.qrc") - + QT5_CREATE_TRANSLATION(PVSMGR_QMS ${PVSMGR_UIS} ${PVSMGR_SRCS} ${PVSMGR_TSS} OPTIONS -noobsolete) endif(PVSMGR_TSS) if(PVSCLIENT_TSS) - - if (UPDATE_TRANSLATIONS) - set(FILES_TO_TRANSLATE ${PVSCLIENT_SRCS} ${PVSCLIENT_UIS}) - QT5_CREATE_TRANSLATION(PVSCLIENT_QMS ${FILES_TO_TRANSLATE} ${PVSCLIENT_TSS} OPTIONS -noobsolete) - message(STATUS ".tr files have been updated") - else (UPDATE_TRANSLATIONS) - QT5_ADD_TRANSLATION(PVSCLIENT_QMS ${PVSCLIENT_TSS}) - endif (UPDATE_TRANSLATIONS) - # # write a resource file for qm files - # set(resource_file_content "<RCC>\n <qresource prefix=\"/\">\n") - # foreach(file ${PVSCLIENT_QMS}) - # get_filename_component(filename ${file} NAME) - # set(resource_file_content "${resource_file_content} <file>${filename}</file>\n") - # endforeach(file) - # set(resource_file_content "${resource_file_content} </qresource>\n</RCC>\n") - # file(WRITE "${CMAKE_BINARY_DIR}/ts_pvsclient.qrc" "${resource_file_content}") - # set(PVSCLIENT_RESOURCES ${PVSCLIENT_RESOURCES} "${CMAKE_BINARY_DIR}/ts_pvsclient.qrc") - + QT5_CREATE_TRANSLATION(PVSCLIENT_QMS ${PVSCLIENT_UIS} ${PVSCLIENT_SRCS} ${PVSCLIENT_TSS} OPTIONS -noobsolete) endif(PVSCLIENT_TSS) # this will run rcc on .qrc files @@ -167,8 +144,6 @@ QT5_ADD_RESOURCES(PVSCLIENT_RCS ${PVSCLIENT_RC_SRCS}) ADD_EXECUTABLE(pvsmgr ${PVSMGR_SRCS} ${PVSMGR_RCS} -# ${PVSMGR_MOC_SRCS} - ${PVSMGR_UI_HDRS} ${PVSMGR_RC_SRCS} ${PVSMGR_QMS} ) @@ -176,8 +151,6 @@ ADD_EXECUTABLE(pvsmgr ADD_EXECUTABLE(pvsclient ${PVSCLIENT_SRCS} ${PVSCLIENT_RCS} -# ${PVSCLIENT_MOC_SRCS} - ${PVSCLIENT_UI_HDRS} ${PVSCLIENT_RC_SRCS} ${PVSCLIENT_QMS} ) @@ -188,7 +161,6 @@ TARGET_LINK_LIBRARIES(pvsmgr Qt5::Widgets Qt5::Svg Qt5::X11Extras -# ${VNC_LIBRARIES} ${X11_LIBRARIES} ${X11_Xscreensaver_LIB} ) @@ -204,33 +176,3 @@ 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 ) |