Include major version number in library names

Currently it is not possible to cleanly install multiple major version
of FreeRDP concurrently as some of the development libraries (.so files)
files can conflict.

This change renames all libraries to include the major version number in
the library name to fix this limitation.

The list of changed libraries:

libwinpr-tools.so -> libwinpr-tools2.so
libwinpr.so -> libwinpr2.so
libfreerdp.so -> libfreerdp2.so
libfreerdp-client.so -> libfreerdp-client2.so
libfreerdp-shadow.so -> libfreerdp-shadow2.so
libfreerdp-server.so ->  libfreerdp-server2.so
libfreerdp-shadow-subsystem.so -> libfreerdp-shadow-subsystem2.so
libuwac.so -> libuwac0.so

As the library names have changed, projects that use FreeRDP will need to
update their dependencies. -
If pkg-config or cmake find modules are used, reconfiguration might be
sufficient.

Fixes #3460
This commit is contained in:
Bernhard Miklautz 2016-12-21 15:25:03 +01:00
parent e218dc03af
commit bbb6bf6b43
14 changed files with 16 additions and 8 deletions

View File

@ -57,6 +57,7 @@ endif()
add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS}) add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME ${MODULE_NAME}${FREERDP_API_VERSION})
include_directories(${OPENSSL_INCLUDE_DIR}) include_directories(${OPENSSL_INCLUDE_DIR})
if (WITH_LIBRARY_VERSIONING) if (WITH_LIBRARY_VERSIONING)
set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${FREERDP_VERSION} SOVERSION ${FREERDP_API_VERSION}) set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${FREERDP_VERSION} SOVERSION ${FREERDP_API_VERSION})

View File

@ -2,7 +2,7 @@ prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=@CMAKE_INSTALL_PREFIX@
libdir=@CMAKE_INSTALL_FULL_LIBDIR@ libdir=@CMAKE_INSTALL_FULL_LIBDIR@
includedir=${prefix}/@FREERDP_INCLUDE_DIR@ includedir=${prefix}/@FREERDP_INCLUDE_DIR@
libs=-lfreerdp-client libs=-lfreerdp-client@FREERDP_API_VERSION@
Name: FreeRDP client Name: FreeRDP client
Description: FreeRDP: A Remote Desktop Protocol Implementation Description: FreeRDP: A Remote Desktop Protocol Implementation

View File

@ -291,6 +291,7 @@ add_library(${MODULE_NAME} ${LIBFREERDP_SRCS})
add_definitions(${LIBFREERDP_DEFINITIONS}) add_definitions(${LIBFREERDP_DEFINITIONS})
set_target_properties(${MODULE_NAME} PROPERTIES LINKER_LANGUAGE C) set_target_properties(${MODULE_NAME} PROPERTIES LINKER_LANGUAGE C)
set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME ${MODULE_NAME}${FREERDP_VERSION_MAJOR})
if (WITH_LIBRARY_VERSIONING) if (WITH_LIBRARY_VERSIONING)
set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${FREERDP_VERSION} SOVERSION ${FREERDP_API_VERSION}) set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${FREERDP_VERSION} SOVERSION ${FREERDP_API_VERSION})

View File

@ -2,7 +2,7 @@ prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=@CMAKE_INSTALL_PREFIX@
libdir=@CMAKE_INSTALL_FULL_LIBDIR@ libdir=@CMAKE_INSTALL_FULL_LIBDIR@
includedir=${prefix}/@FREERDP_INCLUDE_DIR@ includedir=${prefix}/@FREERDP_INCLUDE_DIR@
libs=-lfreerdp libs=-lfreerdp@FREERDP_API_VERSION@
Name: FreeRDP Name: FreeRDP
Description: FreeRDP: A Remote Desktop Protocol Implementation Description: FreeRDP: A Remote Desktop Protocol Implementation

View File

@ -54,6 +54,7 @@ if (WIN32)
endif() endif()
add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS}) add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME ${MODULE_NAME}${FREERDP_API_VERSION})
if (WITH_LIBRARY_VERSIONING) if (WITH_LIBRARY_VERSIONING)
set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${FREERDP_VERSION} SOVERSION ${FREERDP_API_VERSION}) set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${FREERDP_VERSION} SOVERSION ${FREERDP_API_VERSION})

View File

@ -2,7 +2,7 @@ prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=@CMAKE_INSTALL_PREFIX@
libdir=@CMAKE_INSTALL_FULL_LIBDIR@ libdir=@CMAKE_INSTALL_FULL_LIBDIR@
includedir=${prefix}/@FREERDP_INCLUDE_DIR@ includedir=${prefix}/@FREERDP_INCLUDE_DIR@
libs=-lfreerdp-server libs=-lfreerdp-server@FREERDP_API_VERSION@
Name: FreeRDP server Name: FreeRDP server
Description: FreeRDP: A Remote Desktop Protocol Implementation Description: FreeRDP: A Remote Desktop Protocol Implementation

View File

@ -81,6 +81,7 @@ list(APPEND ${MODULE_PREFIX}_LIBS rdtk)
target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${${MODULE_PREFIX}_LIBS}) target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${${MODULE_PREFIX}_LIBS})
set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME ${MODULE_NAME}${FREERDP_VERSION_MAJOR})
if (WITH_LIBRARY_VERSIONING) if (WITH_LIBRARY_VERSIONING)
set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${FREERDP_VERSION} SOVERSION ${FREERDP_API_VERSION}) set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${FREERDP_VERSION} SOVERSION ${FREERDP_API_VERSION})
endif() endif()
@ -284,6 +285,7 @@ set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} freerdp-shadow freerdp winpr)
target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${${MODULE_PREFIX}_LIBS}) target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${${MODULE_PREFIX}_LIBS})
set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME ${MODULE_NAME}${FREERDP_API_VERSION})
if (WITH_LIBRARY_VERSIONING) if (WITH_LIBRARY_VERSIONING)
set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${FREERDP_VERSION} SOVERSION ${FREERDP_API_VERSION}) set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${FREERDP_VERSION} SOVERSION ${FREERDP_API_VERSION})
endif() endif()

View File

@ -2,14 +2,14 @@ prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=@CMAKE_INSTALL_PREFIX@
libdir=@CMAKE_INSTALL_FULL_LIBDIR@ libdir=@CMAKE_INSTALL_FULL_LIBDIR@
includedir=${prefix}/@FREERDP_INCLUDE_DIR@ includedir=${prefix}/@FREERDP_INCLUDE_DIR@
libs=-lfreerdp-shadow -lfreerdp-shadow-subsystem libs=-lfreerdp-shadow@FREERDP_API_VERSION@ -lfreerdp-shadow-subsystem@FREERDP_API_VERSION@
Name: FreeRDP shadow Name: FreeRDP shadow
Description: FreeRDP: A Remote Desktop Protocol Implementation Description: FreeRDP: A Remote Desktop Protocol Implementation
URL: http://www.freerdp.com/ URL: http://www.freerdp.com/
Version: @FREERDP_VERSION@ Version: @FREERDP_VERSION@
Requires: Requires:
Requires.private: @WINPR_PKG_CONFIG_FILENAME@ freerdp@FREERDP_VERSION_MAJOR@ Requires.private: @WINPR_PKG_CONFIG_FILENAME@ freerdp@FREERDP_API_VERSION@
Libs: -L${libdir} ${libs} Libs: -L${libdir} ${libs}
Libs.private: -ldl -lpthread Libs.private: -ldl -lpthread
Cflags: -I${includedir} Cflags: -I${includedir}

View File

@ -64,6 +64,7 @@ set(${MODULE_PREFIX}_SRCS
add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS}) add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME ${MODULE_NAME}${UWAC_API_VERSION})
if (WITH_LIBRARY_VERSIONING) if (WITH_LIBRARY_VERSIONING)
set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${UWAC_VERSION} SOVERSION ${UWAC_API_VERSION}) set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${UWAC_VERSION} SOVERSION ${UWAC_API_VERSION})
endif() endif()

View File

@ -2,7 +2,7 @@ prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=@CMAKE_INSTALL_PREFIX@
libdir=@CMAKE_INSTALL_FULL_LIBDIR@ libdir=@CMAKE_INSTALL_FULL_LIBDIR@
includedir=${prefix}/@UWAC_INCLUDE_DIR@ includedir=${prefix}/@UWAC_INCLUDE_DIR@
libs=-luwac libs=-luwac@UWAC_VERSION_MAJOR@
Name: uwac Name: uwac
Description: uwac: using wayland as a client Description: uwac: using wayland as a client

View File

@ -120,6 +120,7 @@ endif()
add_library(${MODULE_NAME} ${WINPR_SRCS}) add_library(${MODULE_NAME} ${WINPR_SRCS})
set_target_properties(${MODULE_NAME} PROPERTIES LINKER_LANGUAGE C) set_target_properties(${MODULE_NAME} PROPERTIES LINKER_LANGUAGE C)
set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME ${MODULE_NAME}${WINPR_API_VERSION})
if (WITH_LIBRARY_VERSIONING) if (WITH_LIBRARY_VERSIONING)
set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${WINPR_VERSION} SOVERSION ${WINPR_API_VERSION}) set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${WINPR_VERSION} SOVERSION ${WINPR_API_VERSION})
endif() endif()

View File

@ -104,6 +104,7 @@ endif()
add_library(${MODULE_NAME} ${WINPR_TOOLS_SRCS}) add_library(${MODULE_NAME} ${WINPR_TOOLS_SRCS})
set_target_properties(${MODULE_NAME} PROPERTIES LINKER_LANGUAGE C) set_target_properties(${MODULE_NAME} PROPERTIES LINKER_LANGUAGE C)
set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME ${MODULE_NAME}${WINPR_TOOLS_API_VERSION})
if (WITH_LIBRARY_VERSIONING) if (WITH_LIBRARY_VERSIONING)
set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${WINPR_TOOLS_VERSION} SOVERSION ${WINPR_TOOLS_API_VERSION}) set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${WINPR_TOOLS_VERSION} SOVERSION ${WINPR_TOOLS_API_VERSION})
endif() endif()

View File

@ -2,7 +2,7 @@ prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=@CMAKE_INSTALL_PREFIX@
libdir=@CMAKE_INSTALL_FULL_LIBDIR@ libdir=@CMAKE_INSTALL_FULL_LIBDIR@
includedir=${prefix}/@WINPR_INCLUDE_DIR@ includedir=${prefix}/@WINPR_INCLUDE_DIR@
libs=-lwinpr-tools libs=-lwinpr-tools@WINPR_TOOLS_API_VERSION@
Name: WinPR Name: WinPR
Description: WinPR: Windows Portable Runtime Description: WinPR: Windows Portable Runtime

View File

@ -2,7 +2,7 @@ prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=@CMAKE_INSTALL_PREFIX@
libdir=@CMAKE_INSTALL_FULL_LIBDIR@ libdir=@CMAKE_INSTALL_FULL_LIBDIR@
includedir=${prefix}/@WINPR_INCLUDE_DIR@ includedir=${prefix}/@WINPR_INCLUDE_DIR@
libs=-lwinpr libs=-lwinpr@WINPR_API_VERSION@
Name: WinPR Name: WinPR
Description: WinPR: Windows Portable Runtime Description: WinPR: Windows Portable Runtime