# Remmina - The GTK+ Remote Desktop Client # # Copyright (C) 2011 Marc-Andre Moreau # Copyright (C) 2014-2015 Antenore Gatta, Fabio Castelli, Giovanni Panozzo # Copyright (C) 2016-2023 Antenore Gatta, Giovanni Panozzo # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, # Boston, MA 02110-1301, USA. # # In addition, as a special exception, the copyright holders give # permission to link the code of portions of this program with the # OpenSSL library under certain conditions as described in each # individual source file, and distribute linked combinations # including the two. # You must obey the GNU General Public License in all respects # for all of the code used other than OpenSSL. If you modify # file(s) with this exception, you may extend this exception to your # version of the file(s), but you are not obligated to do so. If you # do not wish to do so, delete this exception statement from your # version. If you delete this exception statement from all source # files in the program, then also delete it here. # Needed FreeRDP version to build freerdp plugin include_directories(${CMAKE_SOURCE_DIR}/plugins) set(APPICONSCALE_EMBLEMS_DIR "${REMMINA_DATADIR}/icons/hicolor/scalable/emblems") set(REMMINA_COMMON_INCLUDE_DIRS ${GTK3_INCLUDE_DIRS}) set(REMMINA_COMMON_LIBRARIES ${GTK_LIBRARIES} ${Intl_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) find_suggested_package(LIBSSH) if(LIBSSH_FOUND) add_definitions(-DHAVE_LIBSSH) include_directories(${SSH_INCLUDE_DIRS}) target_link_libraries(remmina ${SSH_LIBRARIES}) endif() option(WITH_FREERDP3 "Compile the RDP plugin using symbols from FreeRDP3" OFF) if (WITH_FREERDP3) set(FREERDP_REQUIRED_VERSION 3) set(FREERDP_REQUIRED_MAJOR 3) set(FREERDP_REQUIRED_MINOR 0) set(FREERDP_REQUIRED_REVISION 0) else() set(FREERDP_REQUIRED_VERSION 2) set(FREERDP_REQUIRED_MAJOR 2) set(FREERDP_REQUIRED_MINOR 0) set(FREERDP_REQUIRED_REVISION 0) endif() find_package(WinPR ${FREERDP_REQUIRED_VERSION} ) find_package(FreeRDP ${FREERDP_REQUIRED_VERSION} ) find_package(FreeRDP-Client ${FREERDP_REQUIRED_VERSION} ) if (WinPR_FOUND AND FreeRDP_FOUND AND FreeRDP-Client_FOUND) message("Enabling RDP plugin") add_subdirectory(rdp) else() message(STATUS "Disabling RDP plugin.") endif() # X2Go option(WITH_X2GO "Build X2Go plugin" OFF) if(WITH_X2GO) message(STATUS "Enabling X2Go plugin.") message(AUTHOR_WARNING "pyhoca-cli is needed at runtime, be sure to install it") add_subdirectory(x2go) else() message(STATUS "Disabling X2Go plugin.") endif() find_suggested_package(LIBVNCSERVER) if(LIBVNCSERVER_FOUND) add_subdirectory(vnc) endif() option(WITH_GVNC "Build GVNC plugin" OFF) if(WITH_GVNC) message(STATUS "Enabling GVNC plugin.") add_definitions(-DWITH_GVNC) find_suggested_package(GTK-VNC) if(GTK-VNC_FOUND) add_subdirectory(gvnc) endif() else() message(STATUS "Disabling GVNC plugin.") endif() find_suggested_package(Spice) if(SPICE_FOUND) add_subdirectory(spice) endif() option(WITH_WWW "Build WWW plugin" ON) if(WITH_WWW) message(STATUS "Enabling WWW plugin.") add_definitions(-DWITH_WWW) find_suggested_package(WEBKIT2GTK) if(WEBKIT2GTK_FOUND) add_subdirectory(www) endif() else() message(STATUS "Disabling WWW plugin.") endif() if(WITH_EXAMPLES) message(STATUS "Enabling examples and test plugins.") add_subdirectory(tool_hello_world) endif() add_subdirectory(exec) option(WITH_KF5WALLET "Building KF5WALLET plugin" OFF) if(WITH_KF5WALLET) CheckHasModule(KF5Wallet) if(HAS_MODULE_KF5Wallet) message(STATUS "Enabling KDE Wallet plugin.") add_definitions(-DWITH_KF5WALLET) add_subdirectory(kwallet) else() message(FATAL_ERROR "libKF5wallet not found but requested") endif() endif() option(WITH_ST "Build Simple Terminal plugin" OFF) if(WITH_ST) message(STATUS "Enabling ST plugin.") add_definitions(-DWITH_ST) get_filename_component(_st_fullpath "st" REALPATH) if(EXISTS "${_st_fullpath}" AND EXISTS "${_st_fullpath}/CMakeLists.txt") add_subdirectory(st) else() message(WARNING "Can't find ${_st_fullpath}/CMakeLists.txt") endif() endif() option(WITH_XDMCP "Build XDMCP plugin" OFF) if(WITH_XDMCP) add_definitions(-DWITH_XDMCP) message(STATUS "Enabling XDMCP plugin.") get_filename_component(_xdmcp_fullpath "xdmcp" REALPATH) if(EXISTS "${_xdmcp_fullpath}" AND EXISTS "${_xdmcp_fullpath}/CMakeLists.txt") add_subdirectory(xdmcp) else() message(WARNING "Can't find ${_xdmcp_fullpath}/CMakeLists.txt") endif() endif() option(WITH_NX "Build NX plugin" OFF) if(WITH_NX) add_definitions(-DWITH_NX) # After the plugin split only the NX plugin needs XKBfile.h find_required_package(XKBFILE) if(LIBSSH_FOUND AND XKBFILE_FOUND) message(STATUS "Enabling NX plugin.") get_filename_component(_nx_fullpath "nx" REALPATH) if(EXISTS "${_nx_fullpath}" AND EXISTS "${_nx_fullpath}/CMakeLists.txt") add_subdirectory(nx) else() message(WARNING "Can't find ${_nx_fullpath}/CMakeLists.txt") endif() endif() endif() option(WITH_PYTHONLIBS "Build Python Wrapper Plugin" ON) if(WITH_PYTHONLIBS) message(STATUS "Enabling Python Wrapper Plugin.") add_definitions(-DWITH_PYTHONLIBS) find_suggested_package(PythonLibs) if(PythonLibs_FOUND) add_subdirectory(python_wrapper) endif() else() message(STATUS "Disabling Python Wrapper plugin.") endif() #find_suggested_package(TELEPATHY) #if(TELEPATHY_FOUND) #add_subdirectory(telepathy) #endif()