channels: fix export of symbols on Windows
This commit is contained in:
parent
f8b049630f
commit
3d98273185
@ -173,12 +173,23 @@ if(NOT WIN32)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
set(CMAKE_INSTALL_BINDIR ${CMAKE_INSTALL_PREFIX})
|
||||||
|
set(CMAKE_INSTALL_LIBDIR ${CMAKE_INSTALL_PREFIX})
|
||||||
|
set(CMAKE_INSTALL_FULL_LIBDIR ${CMAKE_INSTALL_PREFIX})
|
||||||
|
endif()
|
||||||
|
|
||||||
# Path to put FreeRDP data
|
# Path to put FreeRDP data
|
||||||
set(FREERDP_DATA_PATH "${CMAKE_INSTALL_PREFIX}/share/freerdp")
|
set(FREERDP_DATA_PATH "${CMAKE_INSTALL_PREFIX}/share/freerdp")
|
||||||
set(FREERDP_KEYMAP_PATH "${FREERDP_DATA_PATH}/keymaps")
|
set(FREERDP_KEYMAP_PATH "${FREERDP_DATA_PATH}/keymaps")
|
||||||
|
|
||||||
# Path to put plugins
|
# Path to put plugins
|
||||||
set(FREERDP_PLUGIN_PATH "${CMAKE_INSTALL_FULL_LIBDIR}/freerdp")
|
if(WIN32)
|
||||||
|
set(FREERDP_PLUGIN_PATH "${CMAKE_INSTALL_FULL_LIBDIR}")
|
||||||
|
else()
|
||||||
|
set(FREERDP_PLUGIN_PATH "${CMAKE_INSTALL_FULL_LIBDIR}/freerdp")
|
||||||
|
endif()
|
||||||
|
|
||||||
set(FREERDP_CLIENT_PLUGIN_PATH "${FREERDP_PLUGIN_PATH}/client")
|
set(FREERDP_CLIENT_PLUGIN_PATH "${FREERDP_PLUGIN_PATH}/client")
|
||||||
set(FREERDP_SERVER_PLUGIN_PATH "${FREERDP_PLUGIN_PATH}/server")
|
set(FREERDP_SERVER_PLUGIN_PATH "${FREERDP_PLUGIN_PATH}/server")
|
||||||
|
|
||||||
|
@ -25,6 +25,10 @@ set(${MODULE_PREFIX}_SRCS
|
|||||||
cliprdr_main.c
|
cliprdr_main.c
|
||||||
cliprdr_main.h)
|
cliprdr_main.h)
|
||||||
|
|
||||||
|
if(MSVC AND (NOT WITH_STATIC_PLUGINS))
|
||||||
|
set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} module.def)
|
||||||
|
endif()
|
||||||
|
|
||||||
add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
|
add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
|
||||||
set_target_properties(${MODULE_NAME} PROPERTIES PREFIX "")
|
set_target_properties(${MODULE_NAME} PROPERTIES PREFIX "")
|
||||||
|
|
||||||
|
3
channels/cliprdr/client/module.def
Normal file
3
channels/cliprdr/client/module.def
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
LIBRARY "cliprdr"
|
||||||
|
EXPORTS
|
||||||
|
VirtualChannelEntry @1
|
@ -30,6 +30,10 @@ if(WIN32)
|
|||||||
dirent.h)
|
dirent.h)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(MSVC AND (NOT WITH_STATIC_PLUGINS))
|
||||||
|
set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} module.def)
|
||||||
|
endif()
|
||||||
|
|
||||||
include_directories(../../rdpdr/client)
|
include_directories(../../rdpdr/client)
|
||||||
|
|
||||||
add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
|
add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
|
||||||
@ -45,3 +49,6 @@ target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
|
|||||||
|
|
||||||
install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
|
install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
|
||||||
|
|
||||||
|
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client")
|
||||||
|
|
||||||
|
|
||||||
|
@ -38,6 +38,8 @@
|
|||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
|
||||||
|
#include <winpr/crt.h>
|
||||||
|
|
||||||
#include <freerdp/utils/memory.h>
|
#include <freerdp/utils/memory.h>
|
||||||
#include <freerdp/utils/stream.h>
|
#include <freerdp/utils/stream.h>
|
||||||
#include <freerdp/utils/unicode.h>
|
#include <freerdp/utils/unicode.h>
|
||||||
@ -112,7 +114,7 @@ static char* disk_file_combine_fullpath(const char* base_path, const char* path)
|
|||||||
{
|
{
|
||||||
char* fullpath;
|
char* fullpath;
|
||||||
|
|
||||||
fullpath = xmalloc(strlen(base_path) + strlen(path) + 1);
|
fullpath = (char*) malloc(strlen(base_path) + strlen(path) + 1);
|
||||||
strcpy(fullpath, base_path);
|
strcpy(fullpath, base_path);
|
||||||
strcat(fullpath, path);
|
strcat(fullpath, path);
|
||||||
disk_file_fix_path(fullpath);
|
disk_file_fix_path(fullpath);
|
||||||
@ -123,9 +125,9 @@ static char* disk_file_combine_fullpath(const char* base_path, const char* path)
|
|||||||
static boolean disk_file_remove_dir(const char* path)
|
static boolean disk_file_remove_dir(const char* path)
|
||||||
{
|
{
|
||||||
DIR* dir;
|
DIR* dir;
|
||||||
struct dirent* pdirent;
|
|
||||||
struct STAT st;
|
|
||||||
char* p;
|
char* p;
|
||||||
|
struct STAT st;
|
||||||
|
struct dirent* pdirent;
|
||||||
boolean ret = true;
|
boolean ret = true;
|
||||||
|
|
||||||
dir = opendir(path);
|
dir = opendir(path);
|
||||||
@ -143,8 +145,9 @@ static boolean disk_file_remove_dir(const char* path)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
p = xmalloc(strlen(path) + strlen(pdirent->d_name) + 2);
|
p = (char*) malloc(strlen(path) + strlen(pdirent->d_name) + 2);
|
||||||
sprintf(p, "%s/%s", path, pdirent->d_name);
|
sprintf(p, "%s/%s", path, pdirent->d_name);
|
||||||
|
|
||||||
if (STAT(p, &st) != 0)
|
if (STAT(p, &st) != 0)
|
||||||
{
|
{
|
||||||
DEBUG_WARN("stat %s failed.", p);
|
DEBUG_WARN("stat %s failed.", p);
|
||||||
@ -160,8 +163,11 @@ static boolean disk_file_remove_dir(const char* path)
|
|||||||
ret = false;
|
ret = false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
ret = true;
|
ret = true;
|
||||||
xfree(p);
|
}
|
||||||
|
|
||||||
|
free(p);
|
||||||
|
|
||||||
if (!ret)
|
if (!ret)
|
||||||
break;
|
break;
|
||||||
@ -170,6 +176,7 @@ static boolean disk_file_remove_dir(const char* path)
|
|||||||
}
|
}
|
||||||
|
|
||||||
closedir(dir);
|
closedir(dir);
|
||||||
|
|
||||||
if (ret)
|
if (ret)
|
||||||
{
|
{
|
||||||
if (rmdir(path) < 0)
|
if (rmdir(path) < 0)
|
||||||
@ -559,7 +566,7 @@ boolean disk_file_query_directory(DISK_FILE* file, uint32 FsInformationClass, ui
|
|||||||
xfree(file->pattern);
|
xfree(file->pattern);
|
||||||
|
|
||||||
if (path[0])
|
if (path[0])
|
||||||
file->pattern = strdup(strrchr(path, '\\') + 1);
|
file->pattern = _strdup(strrchr(path, '\\') + 1);
|
||||||
else
|
else
|
||||||
file->pattern = NULL;
|
file->pattern = NULL;
|
||||||
}
|
}
|
||||||
|
3
channels/disk/client/module.def
Normal file
3
channels/disk/client/module.def
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
LIBRARY "disk"
|
||||||
|
EXPORTS
|
||||||
|
DeviceServiceEntry @1
|
@ -35,3 +35,4 @@ endif()
|
|||||||
|
|
||||||
install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
|
install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
|
||||||
|
|
||||||
|
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client")
|
||||||
|
@ -55,3 +55,4 @@ endif()
|
|||||||
|
|
||||||
install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
|
install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
|
||||||
|
|
||||||
|
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client")
|
||||||
|
@ -30,6 +30,10 @@ set(${MODULE_PREFIX}_SRCS
|
|||||||
rdpdr_main.c
|
rdpdr_main.c
|
||||||
rdpdr_main.h)
|
rdpdr_main.h)
|
||||||
|
|
||||||
|
if(MSVC AND (NOT WITH_STATIC_PLUGINS))
|
||||||
|
set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} module.def)
|
||||||
|
endif()
|
||||||
|
|
||||||
add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
|
add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
|
||||||
set_target_properties(${MODULE_NAME} PROPERTIES PREFIX "")
|
set_target_properties(${MODULE_NAME} PROPERTIES PREFIX "")
|
||||||
|
|
||||||
|
3
channels/rdpdr/client/module.def
Normal file
3
channels/rdpdr/client/module.def
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
LIBRARY "rdpdr"
|
||||||
|
EXPORTS
|
||||||
|
VirtualChannelEntry @1
|
@ -26,8 +26,8 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include <freerdp/constants.h>
|
|
||||||
#include <freerdp/types.h>
|
#include <freerdp/types.h>
|
||||||
|
#include <freerdp/constants.h>
|
||||||
#include <freerdp/utils/memory.h>
|
#include <freerdp/utils/memory.h>
|
||||||
#include <freerdp/utils/stream.h>
|
#include <freerdp/utils/stream.h>
|
||||||
#include <freerdp/utils/unicode.h>
|
#include <freerdp/utils/unicode.h>
|
||||||
@ -63,6 +63,7 @@ static void rdpdr_process_connect(rdpSvcPlugin* plugin)
|
|||||||
{
|
{
|
||||||
devman_load_device_service(rdpdr->devman, data);
|
devman_load_device_service(rdpdr->devman, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
data = (RDP_PLUGIN_DATA*) (((uint8*) data) + data->size);
|
data = (RDP_PLUGIN_DATA*) (((uint8*) data) + data->size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
#include "rdpdr_types.h"
|
#include "rdpdr_types.h"
|
||||||
|
|
||||||
typedef struct rdpdr_plugin rdpdrPlugin;
|
typedef struct rdpdr_plugin rdpdrPlugin;
|
||||||
|
|
||||||
struct rdpdr_plugin
|
struct rdpdr_plugin
|
||||||
{
|
{
|
||||||
rdpSvcPlugin plugin;
|
rdpSvcPlugin plugin;
|
||||||
|
@ -37,3 +37,4 @@ endif()
|
|||||||
|
|
||||||
install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
|
install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
|
||||||
|
|
||||||
|
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client")
|
||||||
|
@ -38,3 +38,4 @@ target_link_libraries(${MODULE_NAME} ${PCSC_LIBRARIES})
|
|||||||
|
|
||||||
install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
|
install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
|
||||||
|
|
||||||
|
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client")
|
||||||
|
@ -39,7 +39,7 @@ add_executable(${MODULE_NAME} WIN32 ${${MODULE_PREFIX}_SRCS})
|
|||||||
if(WITH_MONOLITHIC_BUILD)
|
if(WITH_MONOLITHIC_BUILD)
|
||||||
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} freerdp)
|
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} freerdp)
|
||||||
|
|
||||||
if(WITH_RDPDR)
|
if(WITH_RDPDR AND WITH_STATIC_PLUGINS)
|
||||||
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} rdpdr disk printer)
|
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} rdpdr disk printer)
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
@ -55,4 +55,3 @@ target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
|
|||||||
install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR})
|
install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||||
|
|
||||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Client/Windows")
|
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Client/Windows")
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user