From 022ceec22a51cbbfe4aaeb1c6f16d5939e5b5986 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Moreau?= Date: Tue, 2 Apr 2013 16:22:30 -0400 Subject: [PATCH] xfreerdp: split client into executable and library --- client/Windows/CMakeLists.txt | 1 - client/X11/CMakeLists.txt | 24 ++++++++++++++------- client/X11/cli/CMakeLists.txt | 36 ++++++++++++++++++++++++++++++++ client/X11/cli/xfreerdp | Bin 0 -> 66215 bytes client/X11/{ => cli}/xfreerdp.c | 0 client/X11/{ => cli}/xfreerdp.h | 0 client/X11/xf_interface.c | 4 ++-- winpr/libwinpr/synch/wait.c | 2 +- winpr/libwinpr/thread/thread.c | 2 +- 9 files changed, 57 insertions(+), 12 deletions(-) create mode 100644 client/X11/cli/CMakeLists.txt create mode 100755 client/X11/cli/xfreerdp rename client/X11/{ => cli}/xfreerdp.c (100%) rename client/X11/{ => cli}/xfreerdp.h (100%) diff --git a/client/Windows/CMakeLists.txt b/client/Windows/CMakeLists.txt index c006d1b00..678a9b5a1 100644 --- a/client/Windows/CMakeLists.txt +++ b/client/Windows/CMakeLists.txt @@ -44,7 +44,6 @@ else() add_executable(${MODULE_NAME} WIN32 ${${MODULE_PREFIX}_SRCS}) endif() - set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} freerdp-client) set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS diff --git a/client/X11/CMakeLists.txt b/client/X11/CMakeLists.txt index 1b41e3ffb..0461a3550 100644 --- a/client/X11/CMakeLists.txt +++ b/client/X11/CMakeLists.txt @@ -15,8 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -set(MODULE_NAME "xfreerdp") -set(MODULE_PREFIX "FREERDP_CLIENT_X11") +set(MODULE_NAME "xfreerdp-client") +set(MODULE_PREFIX "FREERDP_CLIENT_X11_CONTROL") include(FindXmlto) include_directories(${X11_INCLUDE_DIRS}) @@ -41,11 +41,15 @@ set(${MODULE_PREFIX}_SRCS xf_window.c xf_window.h xf_interface.c - xf_interface.h - xfreerdp.c - xfreerdp.h) + xf_interface.h) -add_executable(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS}) +if(WITH_CLIENT_INTERFACE) + add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS}) + set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${FREERDP_VERSION} SOVERSION ${FREERDP_API_VERSION} PREFIX "lib") +else() + set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} cli/xfreerdp.c cli/xfreerdp.h) + add_executable(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS}) +endif() set(${MODULE_PREFIX}_LIBS ${X11_LIBRARIES} @@ -130,6 +134,12 @@ if(WITH_IPP) target_link_libraries(xfreerdp ${IPP_LIBRARY_LIST}) endif() -install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR}) +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") + diff --git a/client/X11/cli/CMakeLists.txt b/client/X11/cli/CMakeLists.txt new file mode 100644 index 000000000..b4d27b5d7 --- /dev/null +++ b/client/X11/cli/CMakeLists.txt @@ -0,0 +1,36 @@ +# FreeRDP: A Remote Desktop Protocol Implementation +# FreeRDP X11 cmake build script +# +# Copyright 2012 Marc-Andre Moreau +# +# 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") +set(MODULE_PREFIX "FREERDP_CLIENT_X11") + +include_directories(..) + +set(${MODULE_PREFIX}_SRCS + xfreerdp.c + xfreerdp.h) + +add_executable(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS}) + +set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} xfreerdp-client) + +target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS}) + +install(TARGETS ${MODULE_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT client) + +set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Client/X11") + diff --git a/client/X11/cli/xfreerdp b/client/X11/cli/xfreerdp new file mode 100755 index 0000000000000000000000000000000000000000..616303382216d7e6e1fd7c534643383b5365f44c GIT binary patch literal 66215 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 = ((DWORD*) thread_status); + thread->dwExitCode = ((DWORD) (size_t) thread_status); } else if (Type == HANDLE_TYPE_MUTEX) { diff --git a/winpr/libwinpr/thread/thread.c b/winpr/libwinpr/thread/thread.c index c2fe14a4c..895c14a1e 100644 --- a/winpr/libwinpr/thread/thread.c +++ b/winpr/libwinpr/thread/thread.c @@ -125,7 +125,7 @@ HANDLE CreateRemoteThread(HANDLE hProcess, LPSECURITY_ATTRIBUTES lpThreadAttribu VOID ExitThread(DWORD dwExitCode) { - pthread_exit((void*) dwExitCode); + pthread_exit((void*) (size_t) dwExitCode); } BOOL GetExitCodeThread(HANDLE hThread, LPDWORD lpExitCode)