From 9bacddf36631572b610f042e17b5ee631dfebbca Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Sun, 30 Oct 2022 12:03:43 +0100 Subject: Modernize cmake file and project structure a bit --- CMakeLists.txt | 118 ++++++++++++--------------------------------------------- 1 file changed, 24 insertions(+), 94 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 5e1b550..69efa33 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,6 +17,10 @@ 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_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + # local cmake modules SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) @@ -26,14 +30,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 +81,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 +113,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 "\n \n") - # foreach(file ${PVSMGR_QMS}) - # get_filename_component(filename ${file} NAME) - # set(resource_file_content "${resource_file_content} ${filename}\n") - # endforeach(file) - # set(resource_file_content "${resource_file_content} \n\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 "\n \n") - # foreach(file ${PVSCLIENT_QMS}) - # get_filename_component(filename ${file} NAME) - # set(resource_file_content "${resource_file_content} ${filename}\n") - # endforeach(file) - # set(resource_file_content "${resource_file_content} \n\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 +132,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 +139,6 @@ ADD_EXECUTABLE(pvsmgr ADD_EXECUTABLE(pvsclient ${PVSCLIENT_SRCS} ${PVSCLIENT_RCS} -# ${PVSCLIENT_MOC_SRCS} - ${PVSCLIENT_UI_HDRS} ${PVSCLIENT_RC_SRCS} ${PVSCLIENT_QMS} ) @@ -188,7 +149,6 @@ TARGET_LINK_LIBRARIES(pvsmgr Qt5::Widgets Qt5::Svg Qt5::X11Extras -# ${VNC_LIBRARIES} ${X11_LIBRARIES} ${X11_Xscreensaver_LIB} ) @@ -204,33 +164,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 " ) -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