Include major version number in library names
authorBernhard Miklautz <bernhard.miklautz@thincast.com>
Wed, 21 Dec 2016 14:25:03 +0000 (15:25 +0100)
committerBernhard Miklautz <bernhard.miklautz@thincast.com>
Mon, 16 Jan 2017 10:11:58 +0000 (11:11 +0100)
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

14 files changed:
client/common/CMakeLists.txt
client/freerdp-client.pc.in
libfreerdp/CMakeLists.txt
libfreerdp/freerdp.pc.in
server/common/CMakeLists.txt
server/freerdp-server.pc.in
server/shadow/CMakeLists.txt
server/shadow/freerdp-shadow.pc.in
uwac/libuwac/CMakeLists.txt
uwac/uwac.pc.in
winpr/libwinpr/CMakeLists.txt
winpr/tools/CMakeLists.txt
winpr/tools/winpr-tools.pc.in
winpr/winpr.pc.in

index bf44809..e4691ab 100644 (file)
@@ -57,6 +57,7 @@ endif()
 
 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})
 if (WITH_LIBRARY_VERSIONING)
   set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${FREERDP_VERSION} SOVERSION ${FREERDP_API_VERSION})
index 54d40c5..92b3346 100644 (file)
@@ -2,7 +2,7 @@ prefix=@CMAKE_INSTALL_PREFIX@
 exec_prefix=@CMAKE_INSTALL_PREFIX@
 libdir=@CMAKE_INSTALL_FULL_LIBDIR@
 includedir=${prefix}/@FREERDP_INCLUDE_DIR@
-libs=-lfreerdp-client
+libs=-lfreerdp-client@FREERDP_API_VERSION@
 
 Name: FreeRDP client
 Description: FreeRDP: A Remote Desktop Protocol Implementation
index 82c7ec3..ae6e6d3 100644 (file)
@@ -291,6 +291,7 @@ add_library(${MODULE_NAME} ${LIBFREERDP_SRCS})
 add_definitions(${LIBFREERDP_DEFINITIONS})
 
 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)
     set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${FREERDP_VERSION} SOVERSION ${FREERDP_API_VERSION})
index 456b284..a5d5c8b 100644 (file)
@@ -2,7 +2,7 @@ prefix=@CMAKE_INSTALL_PREFIX@
 exec_prefix=@CMAKE_INSTALL_PREFIX@
 libdir=@CMAKE_INSTALL_FULL_LIBDIR@
 includedir=${prefix}/@FREERDP_INCLUDE_DIR@
-libs=-lfreerdp
+libs=-lfreerdp@FREERDP_API_VERSION@
 
 Name: FreeRDP
 Description: FreeRDP: A Remote Desktop Protocol Implementation
index 009d566..1580eb8 100644 (file)
@@ -54,6 +54,7 @@ if (WIN32)
 endif()
 
 add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
+set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME ${MODULE_NAME}${FREERDP_API_VERSION})
 
 if (WITH_LIBRARY_VERSIONING)
   set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${FREERDP_VERSION} SOVERSION ${FREERDP_API_VERSION})
index f9ef4c3..8d5fb4d 100644 (file)
@@ -2,7 +2,7 @@ prefix=@CMAKE_INSTALL_PREFIX@
 exec_prefix=@CMAKE_INSTALL_PREFIX@
 libdir=@CMAKE_INSTALL_FULL_LIBDIR@
 includedir=${prefix}/@FREERDP_INCLUDE_DIR@
-libs=-lfreerdp-server
+libs=-lfreerdp-server@FREERDP_API_VERSION@
 
 Name: FreeRDP server
 Description: FreeRDP: A Remote Desktop Protocol Implementation
index 8e4e8e1..49c4eeb 100644 (file)
@@ -81,6 +81,7 @@ list(APPEND ${MODULE_PREFIX}_LIBS rdtk)
 
 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)
          set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${FREERDP_VERSION} SOVERSION ${FREERDP_API_VERSION})
 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})
 
+set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME ${MODULE_NAME}${FREERDP_API_VERSION})
 if (WITH_LIBRARY_VERSIONING)
        set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${FREERDP_VERSION} SOVERSION ${FREERDP_API_VERSION})
 endif()
index 5c8c462..615ae7f 100644 (file)
@@ -2,14 +2,14 @@ prefix=@CMAKE_INSTALL_PREFIX@
 exec_prefix=@CMAKE_INSTALL_PREFIX@
 libdir=@CMAKE_INSTALL_FULL_LIBDIR@
 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
 Description: FreeRDP: A Remote Desktop Protocol Implementation
 URL: http://www.freerdp.com/
 Version: @FREERDP_VERSION@
 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.private: -ldl -lpthread
 Cflags: -I${includedir}
index d409707..6a98077 100644 (file)
@@ -64,6 +64,7 @@ set(${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)
        set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${UWAC_VERSION} SOVERSION ${UWAC_API_VERSION})
 endif()
index 66b477e..0885b0e 100644 (file)
@@ -2,7 +2,7 @@ prefix=@CMAKE_INSTALL_PREFIX@
 exec_prefix=@CMAKE_INSTALL_PREFIX@
 libdir=@CMAKE_INSTALL_FULL_LIBDIR@
 includedir=${prefix}/@UWAC_INCLUDE_DIR@
-libs=-luwac
+libs=-luwac@UWAC_VERSION_MAJOR@
 
 Name: uwac 
 Description: uwac: using wayland as a client
index 7e8fcc5..4b7aa86 100644 (file)
@@ -120,6 +120,7 @@ endif()
 
 add_library(${MODULE_NAME} ${WINPR_SRCS})
 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)
     set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${WINPR_VERSION} SOVERSION ${WINPR_API_VERSION})
 endif()
index f792a9b..4cfe00d 100644 (file)
@@ -104,6 +104,7 @@ endif()
 
 add_library(${MODULE_NAME} ${WINPR_TOOLS_SRCS})
 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)
     set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${WINPR_TOOLS_VERSION} SOVERSION ${WINPR_TOOLS_API_VERSION})
 endif()
index cd05c9a..f406e98 100644 (file)
@@ -2,7 +2,7 @@ prefix=@CMAKE_INSTALL_PREFIX@
 exec_prefix=@CMAKE_INSTALL_PREFIX@
 libdir=@CMAKE_INSTALL_FULL_LIBDIR@
 includedir=${prefix}/@WINPR_INCLUDE_DIR@
-libs=-lwinpr-tools
+libs=-lwinpr-tools@WINPR_TOOLS_API_VERSION@
 
 Name: WinPR
 Description: WinPR: Windows Portable Runtime
index ac509c0..6b0c950 100644 (file)
@@ -2,7 +2,7 @@ prefix=@CMAKE_INSTALL_PREFIX@
 exec_prefix=@CMAKE_INSTALL_PREFIX@
 libdir=@CMAKE_INSTALL_FULL_LIBDIR@
 includedir=${prefix}/@WINPR_INCLUDE_DIR@
-libs=-lwinpr
+libs=-lwinpr@WINPR_API_VERSION@
 
 Name: WinPR
 Description: WinPR: Windows Portable Runtime