-# FreeRDP: A Remote Desktop Protocol Client
+# FreeRDP: A Remote Desktop Protocol Implementation
# FreeRDP cmake build script
#
# Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
# See the License for the specific language governing permissions and
# limitations under the License.
-if(WITH_STATIC_PLUGINS)
- set(CMAKE_POSITION_INDEPENDENT_CODE ON)
-endif()
+set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(FILENAME "ChannelOptions.cmake")
file(GLOB FILEPATHS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*/${FILENAME}")
if(${${STATIC_MODULE}_CLIENT_ENTRY} STREQUAL "VirtualChannelEntry")
set(ENTRY_POINT_NAME "${${STATIC_MODULE}_CLIENT_NAME}_${${STATIC_MODULE}_CLIENT_ENTRY}")
set(ENTRY_POINT_IMPORT "extern int ${ENTRY_POINT_NAME}(PCHANNEL_ENTRY_POINTS pEntryPoints);")
- set(VIRTUAL_CHANNEL_ENTRY_IMPORTS "${VIRTUAL_CHANNEL_ENTRY_IMPORTS}\n${VIRTUAL_CHANNEL_ENTRY_IMPORTS}${ENTRY_POINT_IMPORT}")
+ set(VIRTUAL_CHANNEL_ENTRY_IMPORTS "${VIRTUAL_CHANNEL_ENTRY_IMPORTS}\n${ENTRY_POINT_IMPORT}")
set(VIRTUAL_CHANNEL_ENTRY_TABLE "${VIRTUAL_CHANNEL_ENTRY_TABLE}\n\t{ \"${STATIC_MODULE_NAME}\", ${ENTRY_POINT_NAME} },")
endif()
if(${${STATIC_MODULE}_CLIENT_ENTRY} STREQUAL "DeviceServiceEntry")
set(ENTRY_POINT_NAME "${${STATIC_MODULE}_CLIENT_NAME}_${${STATIC_MODULE}_CLIENT_ENTRY}")
set(ENTRY_POINT_IMPORT "extern int ${ENTRY_POINT_NAME}(PDEVICE_SERVICE_ENTRY_POINTS pEntryPoints);")
- set(DEVICE_SERVICE_ENTRY_IMPORTS "${DEVICE_SERVICE_ENTRY_IMPORTS}\n${DEVICE_SERVICE_ENTRY_IMPORTS}${ENTRY_POINT_IMPORT}")
+ set(DEVICE_SERVICE_ENTRY_IMPORTS "${DEVICE_SERVICE_ENTRY_IMPORTS}\n${ENTRY_POINT_IMPORT}")
set(DEVICE_SERVICE_ENTRY_TABLE "${DEVICE_SERVICE_ENTRY_TABLE}\n\t{ \"${STATIC_MODULE_NAME}\", ${ENTRY_POINT_NAME} },")
endif()
+
endforeach()
set(VIRTUAL_CHANNEL_ENTRY_TABLE "${VIRTUAL_CHANNEL_ENTRY_TABLE}\n\t{ \"\", NULL }")
cliprdr_main.c
cliprdr_main.h)
-if(MSVC AND (NOT WITH_STATIC_PLUGINS))
- set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} module.def)
-endif()
+# cliprdr is always built-in
-if(NOT WITH_STATIC_PLUGINS)
- add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
-else()
- set(${MODULE_PREFIX}_STATIC ON PARENT_SCOPE)
- set(${MODULE_PREFIX}_NAME ${MODULE_NAME} PARENT_SCOPE)
- set(${MODULE_PREFIX}_ENTRY "VirtualChannelEntry" PARENT_SCOPE)
+set(${MODULE_PREFIX}_STATIC ON PARENT_SCOPE)
+set(${MODULE_PREFIX}_NAME ${MODULE_NAME} PARENT_SCOPE)
+set(${MODULE_PREFIX}_ENTRY "VirtualChannelEntry" PARENT_SCOPE)
- add_library(${MODULE_NAME} STATIC ${${MODULE_PREFIX}_SRCS})
-endif()
+add_library(${MODULE_NAME} STATIC ${${MODULE_PREFIX}_SRCS})
set_target_properties(${MODULE_NAME} PROPERTIES PREFIX "")
xfree(plugin);
}
-#ifdef WITH_STATIC_PLUGINS
+/* cliprdr is always built-in */
#define VirtualChannelEntry cliprdr_VirtualChannelEntry
-#endif
const int VirtualChannelEntry(PCHANNEL_ENTRY_POINTS pEntryPoints)
{
dvcman.c
dvcman.h)
-if(NOT WITH_STATIC_PLUGINS)
- add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
-else()
- set(${MODULE_PREFIX}_STATIC ON PARENT_SCOPE)
- set(${MODULE_PREFIX}_NAME ${MODULE_NAME} PARENT_SCOPE)
- set(${MODULE_PREFIX}_ENTRY "VirtualChannelEntry" PARENT_SCOPE)
+# drdynvc is always built-in
- add_library(${MODULE_NAME} STATIC ${${MODULE_PREFIX}_SRCS})
-endif()
+set(${MODULE_PREFIX}_STATIC ON PARENT_SCOPE)
+set(${MODULE_PREFIX}_NAME ${MODULE_NAME} PARENT_SCOPE)
+set(${MODULE_PREFIX}_ENTRY "VirtualChannelEntry" PARENT_SCOPE)
+
+add_library(${MODULE_NAME} STATIC ${${MODULE_PREFIX}_SRCS})
set_target_properties(${MODULE_NAME} PROPERTIES PREFIX "")
target_link_libraries(${MODULE_NAME} freerdp-utils winpr-synch)
endif()
-install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
-
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client")
xfree(drdynvc);
}
-#ifdef WITH_STATIC_PLUGINS
+/* drdynvc is always built-in */
#define VirtualChannelEntry drdynvc_VirtualChannelEntry
-#endif
const int VirtualChannelEntry(PCHANNEL_ENTRY_POINTS pEntryPoints)
{
rail_orders.c
rail_orders.h)
-if(NOT WITH_STATIC_PLUGINS)
- add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
-else()
- set(${MODULE_PREFIX}_STATIC ON PARENT_SCOPE)
- set(${MODULE_PREFIX}_NAME ${MODULE_NAME} PARENT_SCOPE)
- set(${MODULE_PREFIX}_ENTRY "VirtualChannelEntry" PARENT_SCOPE)
+# rail is always built-in
- add_library(${MODULE_NAME} STATIC ${${MODULE_PREFIX}_SRCS})
-endif()
+set(${MODULE_PREFIX}_STATIC ON PARENT_SCOPE)
+set(${MODULE_PREFIX}_NAME ${MODULE_NAME} PARENT_SCOPE)
+set(${MODULE_PREFIX}_ENTRY "VirtualChannelEntry" PARENT_SCOPE)
+
+add_library(${MODULE_NAME} STATIC ${${MODULE_PREFIX}_SRCS})
set_target_properties(${MODULE_NAME} PROPERTIES PREFIX "")
freerdp_event_free(event);
}
-#ifdef WITH_STATIC_PLUGINS
+/* rail is always built-in */
#define VirtualChannelEntry rail_VirtualChannelEntry
-#endif
const int VirtualChannelEntry(PCHANNEL_ENTRY_POINTS pEntryPoints)
{
rdpdr_capabilities.c
rdpdr_capabilities.h)
-if(MSVC AND (NOT WITH_STATIC_PLUGINS))
- set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} module.def)
-endif()
+# rdpdr is always built-in
-if(NOT WITH_STATIC_PLUGINS)
- add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
-else()
- set(${MODULE_PREFIX}_STATIC ON PARENT_SCOPE)
- set(${MODULE_PREFIX}_NAME ${MODULE_NAME} PARENT_SCOPE)
- set(${MODULE_PREFIX}_ENTRY "VirtualChannelEntry" PARENT_SCOPE)
+set(${MODULE_PREFIX}_STATIC ON PARENT_SCOPE)
+set(${MODULE_PREFIX}_NAME ${MODULE_NAME} PARENT_SCOPE)
+set(${MODULE_PREFIX}_ENTRY "VirtualChannelEntry" PARENT_SCOPE)
- add_library(${MODULE_NAME} STATIC ${${MODULE_PREFIX}_SRCS})
-endif()
+add_library(${MODULE_NAME} STATIC ${${MODULE_PREFIX}_SRCS})
set_target_properties(${MODULE_NAME} PROPERTIES PREFIX "")
target_link_libraries(${MODULE_NAME} freerdp-utils winpr-crt winpr-synch winpr-thread winpr-interlocked)
endif()
-install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
-
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client")
#include <freerdp/utils/list.h>
#include <freerdp/utils/svc_plugin.h>
#include <freerdp/utils/load_plugin.h>
+#include <freerdp/client/channels.h>
#include "rdpdr_main.h"
#include "devman.h"
boolean devman_load_device_service(DEVMAN* devman, RDP_PLUGIN_DATA* plugin_data)
{
+ char* name;
DEVICE_SERVICE_ENTRY_POINTS ep;
- PDEVICE_SERVICE_ENTRY entry;
+ PDEVICE_SERVICE_ENTRY entry = NULL;
- entry = freerdp_load_plugin((char*) plugin_data->data[0], "DeviceServiceEntry");
+ name = (char*) plugin_data->data[0];
+ entry = (PDEVICE_SERVICE_ENTRY) freerdp_channels_find_static_device_service_entry(name);
+
+ if (!entry)
+ {
+ printf("loading device service %s (plugin)\n", name);
+ entry = freerdp_load_plugin(name, "DeviceServiceEntry");
+ }
+ else
+ {
+ printf("loading device service %s (static)\n", name);
+ }
if (entry == NULL)
return false;
+++ /dev/null
-LIBRARY "rdpdr"
-EXPORTS
- VirtualChannelEntry @1
xfree(plugin);
}
-#ifdef WITH_STATIC_PLUGINS
+/* rdpdr is always built-in */
#define VirtualChannelEntry rdpdr_VirtualChannelEntry
-#endif
const int VirtualChannelEntry(PCHANNEL_ENTRY_POINTS pEntryPoints)
{
rdpsnd_main.c
rdpsnd_main.h)
-if(NOT WITH_STATIC_PLUGINS)
- add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
-else()
- set(${MODULE_PREFIX}_STATIC ON PARENT_SCOPE)
- set(${MODULE_PREFIX}_NAME ${MODULE_NAME} PARENT_SCOPE)
- set(${MODULE_PREFIX}_ENTRY "VirtualChannelEntry" PARENT_SCOPE)
+# rdpsnd is always built-in
- add_library(${MODULE_NAME} STATIC ${${MODULE_PREFIX}_SRCS})
-endif()
+set(${MODULE_PREFIX}_STATIC ON PARENT_SCOPE)
+set(${MODULE_PREFIX}_NAME ${MODULE_NAME} PARENT_SCOPE)
+set(${MODULE_PREFIX}_ENTRY "VirtualChannelEntry" PARENT_SCOPE)
+
+add_library(${MODULE_NAME} STATIC ${${MODULE_PREFIX}_SRCS})
set_target_properties(${MODULE_NAME} PROPERTIES PREFIX "")
xfree(plugin);
}
-#ifdef WITH_STATIC_PLUGINS
+/* rdpsnd is always built-in */
#define VirtualChannelEntry rdpsnd_VirtualChannelEntry
-#endif
const int VirtualChannelEntry(PCHANNEL_ENTRY_POINTS pEntryPoints)
{
return 1;
}
-
-# FreeRDP: A Remote Desktop Protocol Client
+# FreeRDP: A Remote Desktop Protocol Implementation
# FreeRDP X11 Client
#
# Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
include_directories(${CMAKE_SOURCE_DIR}/resources)
-if(WITH_STATIC_PLUGINS)
- set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} freerdp-channels-client)
-endif()
+set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} freerdp-channels-client)
if(WITH_MONOLITHIC_BUILD)
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} freerdp)
install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR})
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Client/X11")
+
#include <freerdp/utils/signal.h>
#include <freerdp/utils/passphrase.h>
#include <freerdp/client/cliprdr.h>
-#include <freerdp/rail.h>
-
-#ifdef WITH_STATIC_PLUGINS
#include <freerdp/client/channels.h>
-#endif
+#include <freerdp/rail.h>
#include <winpr/synch.h>
*/
int xf_process_plugin_args(rdpSettings* settings, const char* name, RDP_PLUGIN_DATA* plugin_data, void* user_data)
{
- void* entry;
+ void* entry = NULL;
rdpChannels* channels = (rdpChannels*) user_data;
- entry = NULL;
-
-#ifdef WITH_STATIC_PLUGINS
entry = freerdp_channels_find_static_virtual_channel_entry(name);
if (entry)
return 1;
}
}
-#endif
printf("loading channel %s (plugin)\n", name);
freerdp_channels_load_plugin(channels, settings, name, plugin_data);
* limitations under the License.
*/
-#ifndef __FREERDP_RDPSND_H
-#define __FREERDP_RDPSND_H
+#ifndef FREERDP_CHANNEL_RDPSND_H
+#define FREERDP_CHANNEL_RDPSND_H
#include <freerdp/api.h>
#include <freerdp/types.h>
typedef struct rdpsnd_format rdpsndFormat;
+
struct rdpsnd_format
{
uint16 wFormatTag;
#define MEDIUM_QUALITY 0x0001
#define HIGH_QUALITY 0x0002
-#endif
+#endif /* FREERDP_CHANNEL_RDPSND_H */
+