Исправления для CMake
This commit is contained in:
parent
c6471e47f9
commit
5413299265
|
@ -1,47 +0,0 @@
|
|||
cmake_minimum_required(VERSION 2.8)
|
||||
project(xfree)
|
||||
#include_directories(/home/alexander/repositories/iup/include)
|
||||
include_directories(/root/iup/include)
|
||||
set(SOURCE_EXE
|
||||
address.c
|
||||
arguments.c
|
||||
concat.c
|
||||
db.c
|
||||
gui.c
|
||||
images.c
|
||||
monitor.c
|
||||
node_settings.c
|
||||
rxrandr_broker.c
|
||||
rxrandr.c
|
||||
settings.c
|
||||
xfreerdp.c
|
||||
xrdp.c
|
||||
)
|
||||
add_executable(xfree ${SOURCE_EXE})
|
||||
#target_link_libraries(xfree iup X11 Xrandr m /home/alexander/programming/c/iup/sqlite3.a)
|
||||
target_link_libraries(xfree
|
||||
gtk-3
|
||||
gdk-3
|
||||
pangocairo-1.0
|
||||
pango-1.0
|
||||
atk-1.0
|
||||
cairo-gobject
|
||||
cairo
|
||||
gdk_pixbuf-2.0
|
||||
gio-2.0
|
||||
gobject-2.0
|
||||
glib-2.0
|
||||
X11
|
||||
Xrandr
|
||||
m
|
||||
dl
|
||||
pthread
|
||||
|
||||
/root/iup/lib/Linux515/libiup.a
|
||||
/root/SQLite/sqlite3.a
|
||||
)
|
||||
#target_link_libraries(xfree iup X11 Xrandr m sqlite3 -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lX11 -lXrandr -lm)
|
||||
|
||||
if(WITH_COLOR_BUTTONS)
|
||||
add_definitions(-DWITH_COLOR_BUTTONS)
|
||||
endif()
|
|
@ -1,253 +0,0 @@
|
|||
# FreeRDP: A Remote Desktop Protocol Implementation
|
||||
# FreeRDP X11 Client
|
||||
#
|
||||
# Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
||||
# Copyright 2013 Corey Clayton <can.of.tuna@gmail.com>
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
set(MODULE_NAME "xfreerdp-client")
|
||||
set(MODULE_PREFIX "FREERDP_CLIENT_X11_CONTROL")
|
||||
|
||||
include(FindDocBookXSL)
|
||||
include_directories(${X11_INCLUDE_DIRS})
|
||||
include_directories(${OPENSSL_INCLUDE_DIR})
|
||||
|
||||
include_directories(iup PRIVATE /root/iup/iup/source/include)
|
||||
|
||||
set(${MODULE_PREFIX}_SRCS
|
||||
xf_gdi.c
|
||||
xf_gdi.h
|
||||
xf_gfx.c
|
||||
xf_gfx.h
|
||||
xf_rail.c
|
||||
xf_rail.h
|
||||
xf_input.c
|
||||
xf_input.h
|
||||
xf_event.c
|
||||
xf_event.h
|
||||
xf_floatbar.c
|
||||
xf_floatbar.h
|
||||
xf_input.c
|
||||
xf_input.h
|
||||
xf_channels.c
|
||||
xf_channels.h
|
||||
xf_cliprdr.c
|
||||
xf_cliprdr.h
|
||||
xf_monitor.c
|
||||
xf_monitor.h
|
||||
xf_disp.c
|
||||
xf_disp.h
|
||||
xf_graphics.c
|
||||
xf_graphics.h
|
||||
xf_keyboard.c
|
||||
xf_keyboard.h
|
||||
xf_video.c
|
||||
xf_video.h
|
||||
xf_window.c
|
||||
xf_window.h
|
||||
xf_client.c
|
||||
xf_client.h)
|
||||
|
||||
if (CHANNEL_TSMF_CLIENT)
|
||||
set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS}
|
||||
xf_tsmf.c
|
||||
xf_tsmf.h)
|
||||
endif()
|
||||
|
||||
if(WITH_CLIENT_INTERFACE)
|
||||
if(CLIENT_INTERFACE_SHARED)
|
||||
add_library(${MODULE_NAME} SHARED ${${MODULE_PREFIX}_SRCS})
|
||||
if (WITH_LIBRARY_VERSIONING)
|
||||
set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${FREERDP_VERSION} SOVERSION ${FREERDP_API_VERSION})
|
||||
endif()
|
||||
else()
|
||||
add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
|
||||
endif()
|
||||
|
||||
else()
|
||||
set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} cli/xfreerdp.c cli/images.c xfreerdp.h cli/arguments.c cli/concat.c cli/gui.c cli/node_settings.c cli/rxrandr_broker cli/rxrandr.c cli/settings.c cli/db.c cli/address.c cli/monitor.c cli/xrdp.c)
|
||||
add_executable(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
|
||||
set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME "xfreerdp")
|
||||
include_directories(..)
|
||||
endif()
|
||||
|
||||
set(${MODULE_PREFIX}_LIBS
|
||||
${X11_LIBRARIES})
|
||||
|
||||
if(WITH_MANPAGES)
|
||||
find_program(XSLTPROC_EXECUTABLE NAMES xsltproc)
|
||||
|
||||
if(DOCBOOKXSL_FOUND AND XSLTPROC_EXECUTABLE)
|
||||
|
||||
# We need the variable ${MAN_TODAY} to contain the current date in ISO
|
||||
# format to replace it in the configure_file step.
|
||||
include(today)
|
||||
|
||||
TODAY(MAN_TODAY)
|
||||
|
||||
configure_file(xfreerdp.1.xml.in xfreerdp.1.xml @ONLY IMMEDIATE)
|
||||
|
||||
# Compile the helper tool with default compiler settings.
|
||||
# We need the include paths though.
|
||||
get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
|
||||
set(GENERATE_INCLUDES "")
|
||||
foreach(dir ${dirs})
|
||||
set(GENERATE_INCLUDES ${GENERATE_INCLUDES} -I${dir})
|
||||
endforeach(dir)
|
||||
|
||||
add_custom_command(OUTPUT xfreerdp.1
|
||||
COMMAND ${CMAKE_C_COMPILER} ${GENERATE_INCLUDES}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/generate_argument_docbook.c
|
||||
-o ${CMAKE_CURRENT_BINARY_DIR}/generate_argument_docbook
|
||||
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/generate_argument_docbook
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/xfreerdp-channels.1.xml ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/xfreerdp-examples.1.xml ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/xfreerdp-envvar.1.xml ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMAND ${XSLTPROC_EXECUTABLE} ${DOCBOOKXSL_DIR}/manpages/docbook.xsl xfreerdp.1.xml
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
DEPENDS
|
||||
${CMAKE_CURRENT_BINARY_DIR}/xfreerdp.1.xml
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/xfreerdp-examples.1.xml
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/xfreerdp-channels.1.xml
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/xfreerdp-envvar.1.xml)
|
||||
|
||||
add_custom_target(xfreerdp.manpage ALL
|
||||
DEPENDS xfreerdp.1)
|
||||
|
||||
install_freerdp_man(${CMAKE_CURRENT_BINARY_DIR}/xfreerdp.1 1)
|
||||
else()
|
||||
message(WARNING "WITH_MANPAGES was set, but xsltproc was not found. man-pages will not be installed")
|
||||
endif()
|
||||
endif(WITH_MANPAGES)
|
||||
|
||||
set(XSHM_FEATURE_TYPE "REQUIRED")
|
||||
set(XSHM_FEATURE_PURPOSE "X11 shared memory")
|
||||
set(XSHM_FEATURE_DESCRIPTION "X11 shared memory extension")
|
||||
|
||||
set(XINERAMA_FEATURE_TYPE "RECOMMENDED")
|
||||
set(XINERAMA_FEATURE_PURPOSE "multi-monitor")
|
||||
set(XINERAMA_FEATURE_DESCRIPTION "X11 multi-monitor extension")
|
||||
|
||||
set(XEXT_FEATURE_TYPE "RECOMMENDED")
|
||||
set(XEXT_FEATURE_PURPOSE "X11 extension")
|
||||
set(XEXT_FEATURE_DESCRIPTION "X11 core extensions")
|
||||
|
||||
set(XCURSOR_FEATURE_TYPE "RECOMMENDED")
|
||||
set(XCURSOR_FEATURE_PURPOSE "cursor")
|
||||
set(XCURSOR_FEATURE_DESCRIPTION "X11 cursor extension")
|
||||
|
||||
set(XV_FEATURE_TYPE "RECOMMENDED")
|
||||
set(XV_FEATURE_PURPOSE "video")
|
||||
set(XV_FEATURE_DESCRIPTION "X11 video extension")
|
||||
|
||||
set(XI_FEATURE_TYPE "RECOMMENDED")
|
||||
set(XI_FEATURE_PURPOSE "input")
|
||||
set(XI_FEATURE_DESCRIPTION "X11 input extension")
|
||||
|
||||
set(XRENDER_FEATURE_TYPE "RECOMMENDED")
|
||||
set(XRENDER_FEATURE_PURPOSE "rendering")
|
||||
set(XRENDER_FEATURE_DESCRIPTION "X11 render extension")
|
||||
|
||||
set(XRANDR_FEATURE_TYPE "RECOMMENDED")
|
||||
set(XRANDR_FEATURE_PURPOSE "tracking output configuration")
|
||||
set(XRANDR_FEATURE_DESCRIPTION "X11 randr extension")
|
||||
|
||||
set(XFIXES_FEATURE_TYPE "RECOMMENDED")
|
||||
set(XFIXES_FEATURE_PURPOSE "X11 xfixes extension")
|
||||
set(XFIXES_FEATURE_DESCRIPTION "Useful additions to the X11 core protocol")
|
||||
|
||||
find_feature(XShm ${XSHM_FEATURE_TYPE} ${XSHM_FEATURE_PURPOSE} ${XSHM_FEATURE_DESCRIPTION})
|
||||
find_feature(Xinerama ${XINERAMA_FEATURE_TYPE} ${XINERAMA_FEATURE_PURPOSE} ${XINERAMA_FEATURE_DESCRIPTION})
|
||||
find_feature(Xext ${XEXT_FEATURE_TYPE} ${XEXT_FEATURE_PURPOSE} ${XEXT_FEATURE_DESCRIPTION})
|
||||
find_feature(Xcursor ${XCURSOR_FEATURE_TYPE} ${XCURSOR_FEATURE_PURPOSE} ${XCURSOR_FEATURE_DESCRIPTION})
|
||||
find_feature(Xv ${XV_FEATURE_TYPE} ${XV_FEATURE_PURPOSE} ${XV_FEATURE_DESCRIPTION})
|
||||
find_feature(Xi ${XI_FEATURE_TYPE} ${XI_FEATURE_PURPOSE} ${XI_FEATURE_DESCRIPTION})
|
||||
find_feature(Xrender ${XRENDER_FEATURE_TYPE} ${XRENDER_FEATURE_PURPOSE} ${XRENDER_FEATURE_DESCRIPTION})
|
||||
find_feature(XRandR ${XRANDR_FEATURE_TYPE} ${XRANDR_FEATURE_PURPOSE} ${XRANDR_FEATURE_DESCRIPTION})
|
||||
find_feature(Xfixes ${XFIXES_FEATURE_TYPE} ${XFIXES_FEATURE_PURPOSE} ${XFIXES_FEATURE_DESCRIPTION})
|
||||
|
||||
if(WITH_XINERAMA)
|
||||
add_definitions(-DWITH_XINERAMA)
|
||||
include_directories(${XINERAMA_INCLUDE_DIRS})
|
||||
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${XINERAMA_LIBRARIES})
|
||||
endif()
|
||||
|
||||
if(WITH_XEXT)
|
||||
add_definitions(-DWITH_XEXT)
|
||||
include_directories(${XEXT_INCLUDE_DIRS})
|
||||
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${XEXT_LIBRARIES})
|
||||
endif()
|
||||
|
||||
if(WITH_XCURSOR)
|
||||
add_definitions(-DWITH_XCURSOR)
|
||||
include_directories(${XCURSOR_INCLUDE_DIRS})
|
||||
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${XCURSOR_LIBRARIES})
|
||||
endif()
|
||||
|
||||
if(WITH_XV)
|
||||
add_definitions(-DWITH_XV)
|
||||
include_directories(${XV_INCLUDE_DIRS})
|
||||
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${XV_LIBRARIES})
|
||||
endif()
|
||||
|
||||
if(WITH_XI)
|
||||
add_definitions(-DWITH_XI)
|
||||
include_directories(${XI_INCLUDE_DIRS})
|
||||
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${XI_LIBRARIES})
|
||||
endif()
|
||||
|
||||
if(WITH_XRENDER)
|
||||
add_definitions(-DWITH_XRENDER)
|
||||
include_directories(${XRENDER_INCLUDE_DIRS})
|
||||
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${XRENDER_LIBRARIES})
|
||||
endif()
|
||||
|
||||
if(WITH_XRANDR)
|
||||
add_definitions(-DWITH_XRANDR)
|
||||
include_directories(${XRANDR_INCLUDE_DIRS})
|
||||
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${XRANDR_LIBRARIES})
|
||||
endif()
|
||||
|
||||
if(WITH_XFIXES)
|
||||
add_definitions(-DWITH_XFIXES)
|
||||
include_directories(${XFIXES_INCLUDE_DIRS})
|
||||
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${XFIXES_LIBRARIES})
|
||||
endif()
|
||||
|
||||
include_directories(${CMAKE_SOURCE_DIR}/resources)
|
||||
|
||||
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} freerdp-client freerdp m)
|
||||
if (NOT APPLE)
|
||||
list(APPEND ${MODULE_PREFIX}_LIBS rt)
|
||||
endif()
|
||||
#target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${${MODULE_PREFIX}_LIBS} iup /root/xfreerdp/source/client/X11/sqlite3.a)
|
||||
target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${${MODULE_PREFIX}_LIBS} iup sqlite3)
|
||||
#target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${${MODULE_PREFIX}_LIBS} iup Xrandr -L/home/alexander/programming/c/FreeRDP/client/X11/cli/sqlite3.a -lsqlite3)
|
||||
|
||||
if(WITH_IPP)
|
||||
target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${IPP_LIBRARY_LIST})
|
||||
endif()
|
||||
|
||||
if(WITH_CLIENT_INTERFACE)
|
||||
install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries)
|
||||
add_subdirectory(cli)
|
||||
else()
|
||||
install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT client)
|
||||
endif()
|
||||
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Client/X11")
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
# CMake-файлы для FreeRDP
|
||||
|
||||
Файлы основаны на [FreeRDP 2.8.0](https://github.com/FreeRDP/FreeRDP)
|
||||
|
||||
Необходимо поместить в каталог проекта `./client/X11`.
|
|
@ -1,2 +0,0 @@
|
|||
xfreerdp
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
# FreeRDP: A Remote Desktop Protocol Implementation
|
||||
# FreeRDP X11 cmake build script
|
||||
#
|
||||
# Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
set(MODULE_NAME "xfreerdp-cli")
|
||||
set(MODULE_PREFIX "FREERDP_CLIENT_X11")
|
||||
|
||||
set(${MODULE_PREFIX}_SRCS
|
||||
xfreerdp.c
|
||||
images.c,
|
||||
arguments.c,
|
||||
concat.c,
|
||||
gui.c,
|
||||
node_settings.c,
|
||||
rxrandr_broker.c,
|
||||
rxrandr.c,
|
||||
settings.c,
|
||||
db.c,
|
||||
address.c,
|
||||
monitor.c,
|
||||
xrdp.c
|
||||
)
|
||||
|
||||
add_executable(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
|
||||
set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME "xfreerdp" RUNTIME_OUTPUT_DIRECTORY "..")
|
||||
|
||||
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} xfreerdp-client freerdp-client)
|
||||
|
||||
if(OPENBSD)
|
||||
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS} ossaudio)
|
||||
else()
|
||||
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
|
||||
endif()
|
||||
|
||||
install(TARGETS ${MODULE_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT client)
|
||||
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Client/X11")
|
||||
|
73
README.md
73
README.md
|
@ -1,11 +1,74 @@
|
|||
# GUI для FreeRDP
|
||||
|
||||
Надстройка для FreeRDP на основе библиотеки [`IUP`](https://www.tecgraf.puc-rio.br/iup/).
|
||||
|
||||
## Основное окно
|
||||
- Основано на базе [FreeRDP 2.9.0](https://github.com/FreeRDP/FreeRDP) ([локальная версия](http://git.belpig.ru/forks/FreeRDP))
|
||||
- Надстройка для FreeRDP на основе библиотеки [`IUP`](https://www.tecgraf.puc-rio.br/iup/).
|
||||
|
||||
![main.png](img/main.png)
|
||||
|
||||
## Окно настроек
|
||||
|
||||
![settings.png](img/settings.png)
|
||||
|
||||
## Сборка программы
|
||||
|
||||
- [xrandr.patch](xrandr.patch) - исправления поиска библиотеки `Xrandr`
|
||||
- [gui.patch](gui.patch) - включение использования GUI в оригинальный проект `freerdp`
|
||||
|
||||
### Подготовка
|
||||
|
||||
Скопировать файлы из [freerdp](freerdp/) в оригинальный проект `(2.9.0)`:
|
||||
|
||||
```sh
|
||||
cp -r GUI-FreeRDP/freerdp/* freerdp-2.9.0/
|
||||
```
|
||||
|
||||
Перейти в оригинальный каталог:
|
||||
|
||||
```sh
|
||||
cd freerdp-2.9.0
|
||||
```
|
||||
|
||||
Применить патчи:
|
||||
|
||||
```sh
|
||||
git apply ../GUI-FreeRDP/gui.patch
|
||||
git apply ../GUI-FreeRDP/xrandr.patch
|
||||
```
|
||||
|
||||
## Сборка
|
||||
|
||||
Параметр `WITH_COLOR_BUTTONS` отвечает за окрашивание кнопок.
|
||||
|
||||
Создать отдельный каталог `build`:
|
||||
|
||||
```sh
|
||||
mkdir build
|
||||
cd build
|
||||
```
|
||||
|
||||
и выполнить в нём сборку:
|
||||
|
||||
```sh
|
||||
cmake -B . -S .. \
|
||||
-DWITH_WAYLAND=OFF \
|
||||
-DWITH_OSS=OFF \
|
||||
-DWITH_ALSA=OFF \
|
||||
-DWITH_PULSE=OFF \
|
||||
-DWITH_CUPS=OFF \
|
||||
-DWITH_PCSC=OFF \
|
||||
-DWITH_FFMPEG=OFF \
|
||||
-DWITH_OPENSSL=ON \
|
||||
-DWITH_XV=OFF \
|
||||
-DWITH_FUSE=OFF \
|
||||
-DWITH_SWSCALE=OFF \
|
||||
-DWITH_CAIRO=OFF \
|
||||
-DWITH_DSP_FFMPEG=OFF \
|
||||
-DWITH_FAAC=OFF \
|
||||
-DWITH_SSE2=ON \
|
||||
-DWITH_COLOR_BUTTONS=ON \
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
```
|
||||
|
||||
и компиляцию программы:
|
||||
|
||||
```sh
|
||||
make -j16
|
||||
```
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
#include "db.h"
|
||||
#include "xrdp.h"
|
||||
//#include "../xfreerdp.h"
|
||||
#include "../xfreerdp.h"
|
||||
|
||||
static int guiExit(Ihandle *self)
|
||||
{
|
||||
|
@ -163,7 +163,7 @@ Ihandle* guiStart()
|
|||
IupSetAttribute(labelUser, "PADDING", "5");
|
||||
inputUser = IupText(NULL);
|
||||
IupSetAttribute(inputUser, "NAME", "USER");
|
||||
IupSetAttribute(inputUser, "TIP", "<домен>\\<имя пользователя>\n<имя пользователя>@<домен>\n(обязательное для заполнения поле)")
|
||||
IupSetAttribute(inputUser, "TIP", "<домен>\\<имя пользователя>\n<имя пользователя>@<домен>\n(обязательное для заполнения поле)");
|
||||
IupSetAttribute(inputUser, "VALUE", getSetValueCurrent(PARAMETER_USERNAME));
|
||||
IupSetAttribute(inputUser, "SIZE", "100");
|
||||
IupSetAttribute(inputUser, "MASK", "(/w|[/./\\/@/-])*");
|
|
@ -0,0 +1,71 @@
|
|||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <winpr/crt.h>
|
||||
#include <winpr/synch.h>
|
||||
#include <winpr/thread.h>
|
||||
|
||||
#include <freerdp/freerdp.h>
|
||||
#include <freerdp/client/cmdline.h>
|
||||
|
||||
#include "../xf_client.h"
|
||||
#include "../xfreerdp.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <iup.h>
|
||||
|
||||
#include "xrdp.h"
|
||||
|
||||
int free_rdp_connect(int argc, char **argv)
|
||||
{
|
||||
int rc = 1;
|
||||
int status;
|
||||
HANDLE thread;
|
||||
xfContext *xfc;
|
||||
DWORD dwExitCode;
|
||||
rdpContext *context;
|
||||
rdpSettings *settings;
|
||||
RDP_CLIENT_ENTRY_POINTS clientEntryPoints;
|
||||
|
||||
ZeroMemory(&clientEntryPoints, sizeof(RDP_CLIENT_ENTRY_POINTS));
|
||||
clientEntryPoints.Size = sizeof(RDP_CLIENT_ENTRY_POINTS);
|
||||
clientEntryPoints.Version = RDP_CLIENT_INTERFACE_VERSION;
|
||||
|
||||
RdpClientEntry(&clientEntryPoints);
|
||||
|
||||
context = freerdp_client_context_new(&clientEntryPoints);
|
||||
if (!context)
|
||||
return 1;
|
||||
|
||||
settings = context->settings;
|
||||
xfc = (xfContext*) context;
|
||||
|
||||
status = freerdp_client_settings_parse_command_line(context->settings, argc, argv, FALSE);
|
||||
if (status)
|
||||
{
|
||||
rc = freerdp_client_settings_command_line_status_print(settings, status, argc, argv);
|
||||
|
||||
if (settings->ListMonitors)
|
||||
xf_list_monitors(xfc);
|
||||
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (freerdp_client_start(context) != 0)
|
||||
goto out;
|
||||
|
||||
thread = freerdp_client_get_thread(context);
|
||||
|
||||
WaitForSingleObject(thread, INFINITE);
|
||||
GetExitCodeThread(thread, &dwExitCode);
|
||||
rc = xf_exit_code_from_disconnect_reason(dwExitCode);
|
||||
|
||||
freerdp_client_stop(context);
|
||||
|
||||
out: freerdp_client_context_free(context);
|
||||
|
||||
return rc;
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
find_path(IUP_INCLUDE_DIR NAMES iup.h
|
||||
PATHS /home/alexander/repositories/iup/include
|
||||
DOC "The IUP include directory"
|
||||
)
|
||||
|
||||
find_library(IUP_LIBRARY NAMES iup
|
||||
PATHS /home/alexander/repositories/iup
|
||||
DOC "The IUP library"
|
||||
)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(IUP DEFAULT_MSG IUP_LIBRARY IUP_INCLUDE_DIR)
|
||||
|
||||
if(IUP_FOUND)
|
||||
set( IUP_LIBRARIES ${IUP_LIBRARY} )
|
||||
set( IUP_INCLUDE_DIRS ${IUP_INCLUDE_DIR} )
|
||||
endif()
|
||||
|
||||
mark_as_advanced(IUP_INCLUDE_DIR IUP_LIBRARY)
|
|
@ -0,0 +1,19 @@
|
|||
find_path(SQLITE_INCLUDE_DIR NAMES sqlite3.h
|
||||
PATHS /usr/include
|
||||
DOC "The SQLITE include directory"
|
||||
)
|
||||
|
||||
find_library(SQLITE_LIBRARY NAMES sqlite3
|
||||
PATHS /usr/lib64
|
||||
DOC "The SQLITE library"
|
||||
)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SQLite DEFAULT_MSG SQLITE_LIBRARY SQLITE_INCLUDE_DIR)
|
||||
|
||||
if(SQLITE_FOUND)
|
||||
set( SQLITE_LIBRARIES ${SQLITE_LIBRARY} )
|
||||
set( SQLITE_INCLUDE_DIRS ${SQLITE_INCLUDE_DIR} )
|
||||
endif()
|
||||
|
||||
mark_as_advanced(SQLITE_INCLUDE_DIR SQLITE_LIBRARY)
|
|
@ -0,0 +1,200 @@
|
|||
diff --git a/client/X11/CMakeLists.txt b/client/X11/CMakeLists.txt
|
||||
index 869652c..0588402 100644
|
||||
--- a/client/X11/CMakeLists.txt
|
||||
+++ b/client/X11/CMakeLists.txt
|
||||
@@ -57,6 +57,37 @@ set(${MODULE_PREFIX}_SRCS
|
||||
xf_client.c
|
||||
xf_client.h)
|
||||
|
||||
+set(${GUI_IUP}_SRCS
|
||||
+ cli/xfreerdp.c
|
||||
+ cli/images.c
|
||||
+ xfreerdp.h
|
||||
+ cli/xrdp.h
|
||||
+ cli/arguments.c
|
||||
+ cli/concat.c
|
||||
+ cli/gui.c
|
||||
+ cli/node_settings.c
|
||||
+ cli/rxrandr_broker.c
|
||||
+ cli/rxrandr.c
|
||||
+ cli/settings.c
|
||||
+ cli/db.c
|
||||
+ cli/address.c
|
||||
+ cli/monitor.c
|
||||
+ cli/xrdp.c)
|
||||
+
|
||||
+set(IUP_FEATURE_TYPE "REQUIRED")
|
||||
+set(IUP_FEATURE_PURPOSE "IUP extension")
|
||||
+set(IUP_FEATURE_DESCRIPTION "Multi-platform toolkit")
|
||||
+
|
||||
+include_directories(${IUP_INCLUDE_DIRS})
|
||||
+find_feature(IUP ${IUP_FEATURE_TYPE} ${IUP_FEATURE_PURPOSE} ${IUP_FEATURE_DESCRIPTION})
|
||||
+
|
||||
+set(SQLITE_FEATURE_TYPE "REQUIRED")
|
||||
+set(SQLITE_FEATURE_PURPOSE "SQLite extension")
|
||||
+set(SQLITE_FEATURE_DESCRIPTION "C-language library SQL database engine")
|
||||
+
|
||||
+include_directories(${SQLITE_INCLUDE_DIRS})
|
||||
+find_feature(SQLite ${SQLITE_FEATURE_TYPE} ${SQLITE_FEATURE_PURPOSE} ${SQLITE_FEATURE_DESCRIPTION})
|
||||
+
|
||||
if (CHANNEL_TSMF_CLIENT)
|
||||
set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS}
|
||||
xf_tsmf.c
|
||||
@@ -74,7 +105,7 @@ if(WITH_CLIENT_INTERFACE)
|
||||
endif()
|
||||
|
||||
else()
|
||||
- set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} cli/xfreerdp.c xfreerdp.h)
|
||||
+ set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} ${${GUI_IUP}_SRCS})
|
||||
add_executable(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
|
||||
set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME "xfreerdp")
|
||||
include_directories(..)
|
||||
@@ -226,13 +257,17 @@ if(WITH_XFIXES)
|
||||
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${XFIXES_LIBRARIES})
|
||||
endif()
|
||||
|
||||
+if(WITH_COLOR_BUTTONS)
|
||||
+ add_definitions(-DWITH_COLOR_BUTTONS)
|
||||
+endif()
|
||||
+
|
||||
include_directories(${CMAKE_SOURCE_DIR}/resources)
|
||||
|
||||
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} freerdp-client freerdp m)
|
||||
if (NOT APPLE)
|
||||
list(APPEND ${MODULE_PREFIX}_LIBS rt)
|
||||
endif()
|
||||
-target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${${MODULE_PREFIX}_LIBS})
|
||||
+target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${${MODULE_PREFIX}_LIBS} ${IUP_LIBRARIES} ${SQLITE_LIBRARIES})
|
||||
|
||||
if(WITH_IPP)
|
||||
target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${IPP_LIBRARY_LIST})
|
||||
diff --git a/client/X11/cli/CMakeLists.txt b/client/X11/cli/CMakeLists.txt
|
||||
index 5f805c2..1e7d1c4 100644
|
||||
--- a/client/X11/cli/CMakeLists.txt
|
||||
+++ b/client/X11/cli/CMakeLists.txt
|
||||
@@ -19,7 +19,19 @@ set(MODULE_NAME "xfreerdp-cli")
|
||||
set(MODULE_PREFIX "FREERDP_CLIENT_X11")
|
||||
|
||||
set(${MODULE_PREFIX}_SRCS
|
||||
- xfreerdp.c)
|
||||
+ xfreerdp.c
|
||||
+ images.c
|
||||
+ arguments.c
|
||||
+ concat.c
|
||||
+ gui.c
|
||||
+ node_settings.c
|
||||
+ rxrandr_broker.c
|
||||
+ rxrandr.c
|
||||
+ settings.c
|
||||
+ db.c
|
||||
+ address.c
|
||||
+ monitor.c
|
||||
+ xrdp.c)
|
||||
|
||||
add_executable(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
|
||||
set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME "xfreerdp" RUNTIME_OUTPUT_DIRECTORY "..")
|
||||
diff --git a/client/X11/cli/xfreerdp.c b/client/X11/cli/xfreerdp.c
|
||||
index 8db4d39..abdf3ca 100644
|
||||
--- a/client/X11/cli/xfreerdp.c
|
||||
+++ b/client/X11/cli/xfreerdp.c
|
||||
@@ -1,85 +1,24 @@
|
||||
-/**
|
||||
- * FreeRDP: A Remote Desktop Protocol Implementation
|
||||
- * X11 Client
|
||||
- *
|
||||
- * Copyright 2011 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
||||
- * Copyright 2012 HP Development Company, LLC
|
||||
- *
|
||||
- * Licensed under the Apache License, Version 2.0 (the "License");
|
||||
- * you may not use this file except in compliance with the License.
|
||||
- * You may obtain a copy of the License at
|
||||
- *
|
||||
- * http://www.apache.org/licenses/LICENSE-2.0
|
||||
- *
|
||||
- * Unless required by applicable law or agreed to in writing, software
|
||||
- * distributed under the License is distributed on an "AS IS" BASIS,
|
||||
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
- * See the License for the specific language governing permissions and
|
||||
- * limitations under the License.
|
||||
- */
|
||||
+#include <stdlib.h>
|
||||
+#include "gui.h"
|
||||
+#include "arguments.h"
|
||||
|
||||
-#ifdef HAVE_CONFIG_H
|
||||
-#include "config.h"
|
||||
-#endif
|
||||
+#include <stdio.h>
|
||||
|
||||
-#include <winpr/crt.h>
|
||||
-#include <winpr/synch.h>
|
||||
-#include <winpr/thread.h>
|
||||
-
|
||||
-#include <freerdp/freerdp.h>
|
||||
-#include <freerdp/client/cmdline.h>
|
||||
-
|
||||
-#include "../xf_client.h"
|
||||
-#include "../xfreerdp.h"
|
||||
-
|
||||
-int main(int argc, char* argv[])
|
||||
+int main(int argc, char **argv)
|
||||
{
|
||||
- int rc = 1;
|
||||
- int status;
|
||||
- HANDLE thread;
|
||||
- xfContext* xfc;
|
||||
- DWORD dwExitCode;
|
||||
- rdpContext* context;
|
||||
- rdpSettings* settings;
|
||||
- RDP_CLIENT_ENTRY_POINTS clientEntryPoints;
|
||||
-
|
||||
- ZeroMemory(&clientEntryPoints, sizeof(RDP_CLIENT_ENTRY_POINTS));
|
||||
- clientEntryPoints.Size = sizeof(RDP_CLIENT_ENTRY_POINTS);
|
||||
- clientEntryPoints.Version = RDP_CLIENT_INTERFACE_VERSION;
|
||||
-
|
||||
- RdpClientEntry(&clientEntryPoints);
|
||||
-
|
||||
- context = freerdp_client_context_new(&clientEntryPoints);
|
||||
- if (!context)
|
||||
- return 1;
|
||||
-
|
||||
- settings = context->settings;
|
||||
- xfc = (xfContext*)context;
|
||||
-
|
||||
- status = freerdp_client_settings_parse_command_line(context->settings, argc, argv, FALSE);
|
||||
- if (status)
|
||||
- {
|
||||
- rc = freerdp_client_settings_command_line_status_print(settings, status, argc, argv);
|
||||
-
|
||||
- if (settings->ListMonitors)
|
||||
- xf_list_monitors(xfc);
|
||||
-
|
||||
- goto out;
|
||||
- }
|
||||
-
|
||||
- if (freerdp_client_start(context) != 0)
|
||||
- goto out;
|
||||
+ if (argc > 1)
|
||||
+ settingsLoad(argv[1]);
|
||||
+ else
|
||||
+ settingsLoad("/etc/freerdp/freerdp.db");
|
||||
|
||||
- thread = freerdp_client_get_thread(context);
|
||||
+ IupOpen(&argc, &argv);
|
||||
|
||||
- WaitForSingleObject(thread, INFINITE);
|
||||
- GetExitCodeThread(thread, &dwExitCode);
|
||||
- rc = xf_exit_code_from_disconnect_reason(dwExitCode);
|
||||
+ IupShowXY(guiStart(), IUP_CENTER, IUP_CENTER);
|
||||
+ IupMainLoop();
|
||||
|
||||
- freerdp_client_stop(context);
|
||||
+ IupClose();
|
||||
|
||||
-out:
|
||||
- freerdp_client_context_free(context);
|
||||
+ settingsFree();
|
||||
|
||||
- return rc;
|
||||
+ return EXIT_SUCCESS;
|
||||
}
|
24
xfreerdp.c
24
xfreerdp.c
|
@ -1,24 +0,0 @@
|
|||
#include <stdlib.h>
|
||||
#include "gui.h"
|
||||
#include "arguments.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
if (argc > 1)
|
||||
settingsLoad(argv[1]);
|
||||
else
|
||||
settingsLoad("/etc/freerdp/freerdp.db");
|
||||
|
||||
IupOpen(&argc, &argv);
|
||||
|
||||
IupShowXY(guiStart(), IUP_CENTER, IUP_CENTER);
|
||||
IupMainLoop();
|
||||
|
||||
IupClose();
|
||||
|
||||
settingsFree();
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/cmake/FindXRandR.cmake b/cmake/FindXRandR.cmake
|
||||
index 7b0ec71..4b2a79e 100644
|
||||
--- a/cmake/FindXRandR.cmake
|
||||
+++ b/cmake/FindXRandR.cmake
|
||||
@@ -38,7 +38,7 @@ find_library(XRANDR_LIBRARY NAMES Xrandr
|
||||
)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(XRANDR DEFAULT_MSG XRANDR_LIBRARY XRANDR_INCLUDE_DIR)
|
||||
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(XRandR DEFAULT_MSG XRANDR_LIBRARY XRANDR_INCLUDE_DIR)
|
||||
|
||||
if(XRANDR_FOUND)
|
||||
set( XRANDR_LIBRARIES ${XRANDR_LIBRARY} )
|
71
xrdp.c
71
xrdp.c
|
@ -1,71 +0,0 @@
|
|||
//#ifdef HAVE_CONFIG_H
|
||||
//#include "config.h"
|
||||
//#endif
|
||||
//
|
||||
//#include <winpr/crt.h>
|
||||
//#include <winpr/synch.h>
|
||||
//#include <winpr/thread.h>
|
||||
//
|
||||
//#include <freerdp/freerdp.h>
|
||||
//#include <freerdp/client/cmdline.h>
|
||||
//
|
||||
//#include "../xf_client.h"
|
||||
//#include "../xfreerdp.h"
|
||||
//
|
||||
//#include <stdlib.h>
|
||||
//#include <stdio.h>
|
||||
//#include <string.h>
|
||||
//#include <iup.h>
|
||||
//
|
||||
//#include "xrdp.h"
|
||||
//
|
||||
//int free_rdp_connect(int argc, char **argv)
|
||||
//{
|
||||
// int rc = 1;
|
||||
// int status;
|
||||
// HANDLE thread;
|
||||
// xfContext *xfc;
|
||||
// DWORD dwExitCode;
|
||||
// rdpContext *context;
|
||||
// rdpSettings *settings;
|
||||
// RDP_CLIENT_ENTRY_POINTS clientEntryPoints;
|
||||
//
|
||||
// ZeroMemory(&clientEntryPoints, sizeof(RDP_CLIENT_ENTRY_POINTS));
|
||||
// clientEntryPoints.Size = sizeof(RDP_CLIENT_ENTRY_POINTS);
|
||||
// clientEntryPoints.Version = RDP_CLIENT_INTERFACE_VERSION;
|
||||
//
|
||||
// RdpClientEntry(&clientEntryPoints);
|
||||
//
|
||||
// context = freerdp_client_context_new(&clientEntryPoints);
|
||||
// if (!context)
|
||||
// return 1;
|
||||
//
|
||||
// settings = context->settings;
|
||||
// xfc = (xfContext*) context;
|
||||
//
|
||||
// status = freerdp_client_settings_parse_command_line(context->settings, argc, argv, FALSE);
|
||||
// if (status)
|
||||
// {
|
||||
// rc = freerdp_client_settings_command_line_status_print(settings, status, argc, argv);
|
||||
//
|
||||
// if (settings->ListMonitors)
|
||||
// xf_list_monitors(xfc);
|
||||
//
|
||||
// goto out;
|
||||
// }
|
||||
//
|
||||
// if (freerdp_client_start(context) != 0)
|
||||
// goto out;
|
||||
//
|
||||
// thread = freerdp_client_get_thread(context);
|
||||
//
|
||||
// WaitForSingleObject(thread, INFINITE);
|
||||
// GetExitCodeThread(thread, &dwExitCode);
|
||||
// rc = xf_exit_code_from_disconnect_reason(dwExitCode);
|
||||
//
|
||||
// freerdp_client_stop(context);
|
||||
//
|
||||
// out: freerdp_client_context_free(context);
|
||||
//
|
||||
// return rc;
|
||||
//}
|
Loading…
Reference in New Issue